PyQt5控件的總結(jié)

一泵肄、窗口控件

  • 如果是主窗口,用QmainWindow類或油;
  • 如果是對(duì)話框爱咬,就用Qdialog類;
  • 如果不確定份汗,或者可能是頂層窗口盈电,也可能嵌入其他窗口,那就用Qwidget類杯活。

另外匆帚,注意QWidget、QMainWindow旁钧、QDialog和QFrame的區(qū)別吸重,特別是QWidget和QFrame的區(qū)別
PyQt中所有的類都繼承于QObject類互拾。QWidget直接繼承于QPaintDevice類,QDialog嚎幸、QMainWindow颜矿、QFrame直接繼承QWidget 類。QWidget類是所有用戶界面對(duì)象的基類嫉晶。 QDialog類是對(duì)話框窗口的基類骑疆。QFrame類是有框架的窗口部件的基類,比如:QPushButton,QLabel… ---> QFrame ---> QWidget替废。本文中符號(hào)“---> ”表示“繼承于”的意思箍铭。

詳細(xì)區(qū)別請(qǐng)看:
QWidget、QMainWindow椎镣、QDialog和QFrame的區(qū)別
QFrame與QWidget的區(qū)別
QFrame類使用總結(jié)

(一) QmainWindow:主窗口類

通常用于創(chuàng)建主窗口诈火,它繼承自Qwidget類,擁有它的所派生方法和屬性衣陶。

(二) QWidget:控件類

它是所有用戶界面對(duì)象的基類柄瑰,所有的窗口和控件都直接或間接繼承自QWidget類。

1剪况、QLabel:標(biāo)簽類

  • 可用于顯示不可編輯的文本和圖片教沾,也可以放置一個(gè)GIF動(dòng)畫,還可以用于提示標(biāo)記為其他控件译断。純文本授翻、鏈接、富文本可顯示的標(biāo)簽上孙咪。
  • 繼承關(guān)系:
    QLabel ---> QFrame ---> QWidget

2堪唐、文本框類控件:QLineEdit、QTextEdit

① QLineEdit : 單行文本框控件

用于輸入單行字符串翎蹈。

② QTextEdit : 多行文本框控件

可以顯示多行文本內(nèi)容淮菠,當(dāng)文本內(nèi)容超出控件顯示范圍時(shí),可以顯示水平個(gè)垂直滾動(dòng)條荤堪。還可顯示HTML文檔合陵。

3、 按鈕類控件 : QAbstractButton澄阳、QPushButton拥知、QRadioButton、QCheckBox

① QAbstractButton : 按鈕基類

是按鈕的基類碎赢,QPushButton低剔、QRadioButton、QCheckBox均繼承于 QAbstractButton,它是抽象類襟齿,不能實(shí)例化姻锁。

②QPushButton : 命令按鈕

是長(zhǎng)方形,通過單擊該按鈕或用快捷鍵來執(zhí)行一些命令蕊唐,該命令通常通過文本來描述執(zhí)行的動(dòng)作屋摔。

③ QRadioButton : 單選按鈕
  • 提供一組可供選擇的按鈕和文本標(biāo)簽,用戶可選擇其中一選項(xiàng)替梨,標(biāo)簽用于顯示對(duì)應(yīng)的文本信息。它是一種形狀按鈕装黑,可以切換為on或off副瀑,即checked和unchecked。
  • toggled信號(hào)是在切換單選鈕狀態(tài)時(shí)發(fā)射的恋谭,而clicked信號(hào)則在每次點(diǎn)擊時(shí)都會(huì)發(fā)射糠睡,所以toggled信號(hào)更適合用于狀態(tài)監(jiān)控,綁定這個(gè)信號(hào)疚颊,在按鈕狀態(tài)改變時(shí)狈孔,觸發(fā)相應(yīng)行為。
④ QCheckBox : 復(fù)選框按鈕
  • 提供了一組帶文本標(biāo)簽的復(fù)選框材义,用戶怕樹葉子打破頭選擇多個(gè)選項(xiàng)均抽。
  • 它被選中或取消選中,都會(huì)發(fā)射一個(gè)stateChaged信號(hào)其掂,如果想在它狀態(tài)改變時(shí)觸發(fā)相應(yīng)的行為油挥,請(qǐng)連接這個(gè)信號(hào)。

4款熬、QComboBox : 下拉列表框

是一個(gè)集按鈕和下拉選項(xiàng)于一體的控件深寥。

5、QSpinBox : 計(jì)數(shù)器

  • 是一個(gè)計(jì)數(shù)器控件贤牛,允許用戶選擇一個(gè)整數(shù)值惋鹅,通過單擊向上/向下按鈕或按鍵盤上的上/下箭頭來增加/減少當(dāng)前顯示的值,也可以輸入值殉簸。
  • 繼承關(guān)系:QSpinBox 闰集、QDoubleSpinBox ---> QAbstractSpinBox。QSpinBox用于數(shù)理整數(shù)值喂链,QDoubleSpinBox用于處理浮點(diǎn)值返十。
  • 可用valueChanged信號(hào)連接槽,可通過value()函數(shù)獲得計(jì)數(shù)器的當(dāng)前值椭微。

6洞坑、QSlider : 滑動(dòng)條

  • 提供一個(gè)垂直或水平的滑動(dòng)條,是用于控制有界值的典型控件蝇率,它允許用戶在某一范圍內(nèi)移動(dòng)滑塊迟杂,并將滑塊所在的位置置換成一個(gè)合法范圍內(nèi)的整數(shù)值刽沾。

7、窗口繪圖類控件:QPainter排拷、QPen侧漓、QBrush、QPixmap

① QPainter : 繪制點(diǎn)监氢、文字
  • 在QWidget控件上執(zhí)行繪圖操作布蔗,可以繪制簡(jiǎn)單的直線到復(fù)雜的餅圖,執(zhí)行較低級(jí)別的圖形繪制功能浪腐。
② QPen : 鋼筆
  • 用于繪制直線纵揍、曲線、或給輪廓畫出矩形议街、橢圓形泽谨、多邊形及其他形狀等
③ QBrush : 畫刷
  • 用于填充如矩形、橢圓形或多邊形等形狀特漩。
④ QPixmap : 圖像顯示
  • 用于繪圖設(shè)備的圖像顯示吧雹,它可以作為一個(gè)QPaintDevice對(duì)象,也可以加載到一個(gè)控件中涂身,通常是標(biāo)簽或按鈕雄卷,用于在標(biāo)簽或按鈕上顯示圖像。

8访得、拖曳與剪貼板:Drag龙亲、Drop、QClipboard

① DragEnterEvent悍抑、DropEvent : 拖曳

基于MIME類型的拖曳數(shù)據(jù)傳輸是基于QDrag類的鳄炉。QMimeData對(duì)象將關(guān)聯(lián)的數(shù)據(jù)與其對(duì)應(yīng)的MIME類型相關(guān)聯(lián)∷崖猓互聯(lián)網(wǎng)上的每一種資源都屬于一種MIME類型的數(shù)據(jù)拂盯。

② QClipboard : 剪貼板
  • 提供了對(duì)系統(tǒng)剪貼板的訪問,可以在應(yīng)用程序之間復(fù)制和粘貼數(shù)據(jù)

9记靡、QCalendar :日歷控件

提供一個(gè)基于月份的視圖谈竿,通話用戶通過鼠標(biāo)或鍵盤選擇日期,默認(rèn)選中的是今天的日期摸吠。也可以對(duì)日歷的日期范圍進(jìn)行規(guī)定空凸。

10、QDateTimeEdit :日期時(shí)間控件

  • 是一個(gè)允許用戶編輯日期時(shí)間的控件寸痢,可以使用鍵盤和上呀洲、下箭頭按鈕來增加或減少日期時(shí)間值。
  • 繼承關(guān)系:QDateEdit、QTimeEdit ---> QDateTimeEdit ---> QAbstractSpinBox ---> QWidget
  • 信號(hào)和槽函數(shù): QDateTimeEdit 常用的信號(hào)是dateChanger道逗、dateTimeChanged兵罢、timeChanged,分別在改變?nèi)掌谧仪稀⑷掌跁r(shí)間卖词、時(shí)間時(shí)發(fā)射。

11吏夯、菜單欄 :QMenuBar

12此蜈、工具欄 :QToolBar

13、狀態(tài)欄 :QStatusBar

MainWindow對(duì)象在底部保留有一個(gè)水平條噪生,作為狀態(tài)欄舶替,用于顯示永久或臨時(shí)的狀態(tài)信息。

(三) Qdialog:對(duì)話框窗口類

繼承關(guān)系:QMessageBox杠园、QFileDialog、QFontDialog舔庶、QInputDialog --->Qdialog

1抛蚁、QMessageBox : 消息彈出式對(duì)話框

  • 用于顯示消息,允許用戶通過單擊不同的標(biāo)準(zhǔn)按鈕對(duì)消息進(jìn)行反饋惕橙。

2瞧甩、QInputDialog : 輸入對(duì)話框

  • 由一個(gè)文本框和兩個(gè)按鈕(OK和Cancel)組成,當(dāng)用戶單擊ok按鈕后或按enter鍵后弥鹦,父窗口可以收集通過QInputDialog控件輸入的信息肚逸。

3、QFontDialog : 字體選擇對(duì)話框

  • 可以讓用戶選擇所顯示文本的字號(hào)大小彬坏、樣式和格式朦促。

4、QFileDialog : 打開保存文件對(duì)話框

  • 用于打開和保存文件的標(biāo)準(zhǔn)對(duì)話框栓始。

二务冕、布局控件

  • PyQt5中有4種布局方式:水平布局、垂直布局幻赚、網(wǎng)格布局禀忆、表單布局
  • PyQt5中有2種布局方法:addLayout()、addWidget()

(一)QBoxLayout :框布局

繼承關(guān)系:QHBoxLayout落恼、QVBoxLayout ---> QBoxLayout ---> QLayout ---> QObject

1箩退、QHBoxLayout :水平布局

按照從左到右的順序來添加控件

2、QVBoxLayout :垂直布局

按照從上到下的順序來添加控件

(二)QGridLayout :網(wǎng)格布局

  • 將窗口分隔成行和列的網(wǎng)格來進(jìn)行排列佳谦。

(三)QFormLayout :表單布局

  • 繼承關(guān)系: QFormLayout ---> QLayout ---> QObject
  • 實(shí)現(xiàn)表單式的布局戴涝,由兩列組成,第一列用于顯示信息,給用戶提示喊括,一般叫l(wèi)abel域胧瓜;第二列需要用戶進(jìn)行選擇或輸入,一般叫field域郑什。 府喳。

(四)QSplitter

  • 可以動(dòng)態(tài)地拖動(dòng)子控件之間的邊界來控制子控件的大小,是一個(gè)動(dòng)態(tài)布局管理器

三蘑拯、高級(jí)界面控件

(一)表格與樹:QTableView钝满、QListView、QListWidget申窘、QTableWidget弯蚜、QTreeView

1、QTableView

  • 繼承關(guān)系:QTableWidget ---> QTableView ---> QAbstractItemView ---> QAbstractScrollArea ---> QFrame ---> QWidget
  • QTableView控件可以綁定一個(gè)模型數(shù)據(jù)用來更新控件上的內(nèi)容

2剃法、QListView

  • 繼承關(guān)系:QListWidget ---> QListView
  • QListWidget 是 QListView的子類碎捺,是升級(jí)版本的QListView。
  • QListView類用于展示數(shù)據(jù)

3贷洲、QListWidget

  • 是一個(gè)基于條目的接口收厨,用于從列表中添加或刪除條目。每一個(gè)條目對(duì)象都是QListWidgetItem對(duì)象优构。

4诵叁、QTableWidget

  • 是Qt程序中常用的顯示數(shù)據(jù)表格的空間
  • 繼承關(guān)系:QTableWidget ---> QTableView

5、QTreeView

  • 繼承關(guān)系:QTreeWidget ---> QTreeView ---> QAbstractItemView ---> QAbstractScrollArea ---> QFrame ---> QWidget
  • QTreeView類實(shí)現(xiàn)樹形結(jié)構(gòu)钦椭,樹形結(jié)構(gòu)是通過QTreeWidgetQ和TreeWidgetItem類實(shí)現(xiàn)的拧额,其中TreeWidgetItem類實(shí)現(xiàn)樹形節(jié)點(diǎn)的添加。

(二)容器:裝載更多的控件

  • 用于解決一個(gè)窗口裝載不下或裝載太多控件而不美觀的問題彪腔。

1侥锦、QTabWidget:選項(xiàng)卡控件

  • 提供一個(gè)選項(xiàng)卡和一個(gè)頁面區(qū)域,默認(rèn)顯示第一個(gè)選項(xiàng)卡

2漫仆、QStackedWidget:堆棧窗口控件

  • 是一個(gè)堆棧窗口控件捎拯,可以填充一些小控件,但同一時(shí)間只有一個(gè)小控件可以顯示盲厌。QStackedWidget使用使用QStackedLayout布局署照。

3、QDockWidget

  • 是一個(gè)可以吐鸷疲靠在QMainWindow內(nèi)的窗口控件建芙,它可以保持浮動(dòng)狀態(tài)或者在指定位置作為子窗口附加到主窗口中。

4懂扼、多文檔界面:QMdiArea

  • QMdiArea控件占據(jù)在主窗口的中央位置禁荸,子窗口在這個(gè)區(qū)域是QMdiSubWindow類的實(shí)例右蒲。

5、QScrollBar

  • 提供水平或垂直的滾動(dòng)條赶熟,這樣可以擴(kuò)大當(dāng)前窗口的有效裝載面積瑰妄,從而裝載更多的控件。

(三)多線程

1映砖、QTimer:定時(shí)器

  • 提供重復(fù)的和音效的定時(shí)器间坐。
  • 一般將timeout信號(hào)連接到相應(yīng)的槽。

1邑退、QThread

  • 是Qt線程類中最核心的底層類竹宋,要使用QThread開始一個(gè)線程,可以創(chuàng)建它的一個(gè)子類地技,然后覆蓋其QThread.run()函數(shù)蜈七。
  • PyQt的線程使用方法:建立一個(gè)自定義的類,使它繼承QThread莫矗,并實(shí)現(xiàn)其run()方法即可飒硅。
  • QThread有started和finished信號(hào),可以為這2個(gè)信號(hào)指定槽函數(shù)作谚。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狡相,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子食磕,更是在濱河造成了極大的恐慌,老刑警劉巖喳挑,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彬伦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡伊诵,警方通過查閱死者的電腦和手機(jī)单绑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曹宴,“玉大人搂橙,你說我怎么就攤上這事〉烟梗” “怎么了区转?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)版扩。 經(jīng)常有香客問我废离,道長(zhǎng),這世上最難降的妖魔是什么礁芦? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任蜻韭,我火速辦了婚禮悼尾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肖方。我一直安慰自己闺魏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布俯画。 她就那樣靜靜地躺著析桥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪活翩。 梳的紋絲不亂的頭發(fā)上烹骨,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音材泄,去河邊找鬼沮焕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拉宗,可吹牛的內(nèi)容都是我干的峦树。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼旦事,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼魁巩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起姐浮,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤谷遂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后卖鲤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肾扰,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年蛋逾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了集晚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡区匣,死狀恐怖偷拔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亏钩,我是刑警寧澤莲绰,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站姑丑,受9級(jí)特大地震影響钉蒲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彻坛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一顷啼、第九天 我趴在偏房一處隱蔽的房頂上張望踏枣。 院中可真熱鬧,春花似錦钙蒙、人聲如沸茵瀑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽马昨。三九已至,卻和暖如春扛施,著一層夾襖步出監(jiān)牢的瞬間鸿捧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工疙渣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匙奴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓妄荔,卻偏偏與公主長(zhǎng)得像泼菌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子啦租,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1哗伯、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽明先生_X自主閱讀 15,979評(píng)論 3 119
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評(píng)論 25 707
  • 尼采那句“最篤信的句子”是什么?“成為你的存在篷角!” 不過焊刹,我是什么樣的人呢?布雷爾捫心自問恳蹲,我想要做什么樣的人呢伴澄?...
    南山菇?jīng)?/span>閱讀 4,123評(píng)論 0 11
  • 記一忘三二 這個(gè)標(biāo)題是李娟最近出的新書的書名,看一眼就讓人難以忘懷阱缓,臨時(shí)借來...
    柳和梁閱讀 1,053評(píng)論 0 1