myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...
請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~
同學們好!
在之前的課程里,傳送門:《木辛老師的編程課堂:Python和Qt第2講之QtDesigner的使用(二)》
我們嘗試將一個按鈕放置到了主窗口中,如果需要放置更多的控件,則可以從左側的工具箱中拖拽更多的控件到主窗口上。
不過,控件過多之后,管理是比較棘手的。Qt Designer提供了布局的管理方式,方便管理多個控件的布局情況。
布局方式
Qt Designer提供了4中窗口布局方式
他們位于Qt Designer主窗口左側區域的工具箱里的Layouts(布局)欄中。
查看工具箱的布局欄垂直布局:控件默認按照從上到下的順序進行縱向添加
水平布局:控件默認按照從左到右的順序進行橫向添加
柵格布局:將窗口控件放入一個網格之中,然后將他們合理的劃分成若干行(row)和列(column),并把其其中的每個窗口控件放置在合適的單元(cell)中,這里的單元即是由行和列劃分出來的控件。
表單布局:控件以兩列的形式布局在表單中,其中左列包含標簽,右列包含輸入控件
在Qt Designer中,進行布局有兩種方式:一是通過布局管理器進行布局;二是通過容器控件進行布局。
利用布局管理器布局
咱們做個例子試試吧
打開Qt Designer(大家還記得如何打開Qt Designer工具嗎?傳送門:《木辛老師的編程課堂:Python和Qt第2講之QtDesigner的使用(一)》)。
新建一個主窗口
新建主窗口然后將一個輸入文本框和一個按鈕拖拽都主窗口上
拖拽控件到主窗口選中這兩個控件之后,點擊鼠標右鍵
修改水平布局在“布局”菜單中選擇“水平布局”;
Qt Designer會自動將兩個控件水平對齊
水平布局效果就如上圖所示。
這樣,我們通過Qt Designer簡單的拖拽和選擇,就完成了一個水平方向布局的美觀的控件組合了!
我們保存一下這個.ui文件。
最后通過,PyCharm的插件將這個.ui文件轉換成.py文件。
ui文件轉py通過上方的源代碼,我們可以看到:
我們定義的輸入文本框和按鈕,已經被放入了一個QHBoxLayout的水平布局的widget里了。
這樣,兩個控件就會根據實際情況,自動水平對齊。
重點指出:QPushButton和QLineEdit兩個空間在實例化的時候,指定了QWidget作為其父控件,布局對象QHBoxLayout指定的父控件也是QWidget。
咱們再回到Qt Designer,看一下控件和窗口之間的層次關系哈
對象窗口可以看到,與轉換后的Python代碼一樣,QPushButton和QLineEdit也是歸屬到widget中的;通過這個對象查看窗口,我們也可以方便地看出窗口 —> 布局—> 控件的之間的層級關系。窗口一般作為頂層顯示,然后將控件按照我們的布局方式進行排列。
利用容器進行布局
另外一個管理布局的方式,是通過容器的進行布局的管理。
所謂容器控件,就是指能夠容納子容器的控件;使用容器控件,就是將容器控件中的控件歸為一類。當然了,使用容器控件也可以對它的子控件進行布局,只不過呢,沒有布局管理器常用。
我們還用剛才的例子,將主窗口中的控件全都刪除。
然后,在左側的容器導航欄中拖入一個Frame控件,然后在其中放入一個QLabel,一個QLineEdit,一個QPushButton控件。
選中Frame控件,并點擊鼠標右鍵,選擇“布局” —> “水平布局”,就可以得到如下圖所示的效果了,是不是很簡單呀~
容器布局之后,我們通過PyCharm的插件PyUIC工具將.ui文件轉換為.py文件,就可以直接調用使用了。
咱們一起來看一下轉換后的文件的比較重要的地方吧????
self.frame = QtWidgets.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(150, 80, 378, 64)) self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) self.frame.setFrameShadow(QtWidgets.QFrame.Raised) self.frame.setObjectName("frame") self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QtWidgets.QLabel(self.frame)可以看到,咱們盡管使用了容器進行空間的布局,但是本質上還是通過QHBoxLayout 調用了布局管理器進行的。
經過如上的操作,我們已經初步的了解了如何通過Qt Designer工具進行布局設計,并學到了Qt Designer提供的4中布局管理方式;
咱們通過實例,練習了其中的水平布局,其他的布局方式請同學們自己嘗試一下吧,如果有任何問題歡迎隨時給木辛老師發送私信喲!
好了,今天的課程就到這里吧,請持續關注木辛老師的編程課喲,后續更多精彩陸續到來!
快樂編程,快樂成長!
總結
以上是生活随笔為你收集整理的myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西游记第十回概括 西游记第十回的主要内容
- 下一篇: 漂泊他乡的意思 漂泊他乡的解释