python 读取鼠标选中文本_木辛老师的编程课堂:Python和Qt之页面布局实战篇(一)...
但是僅僅掌握這些知識還是遠遠不夠的;
高深的程序技能是通過不斷的練習,反復的試錯才能掌握的一門簡單,但是高深的武功。所以,今天我們就專門講一節實戰課程,總結一下有關Qt Designer的一些知識。
請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~
讓我們通過實戰,來進一步鞏固學過的知識吧。
打開Qt Designer,新建一個主窗口(Main Window),然后從左側的Buttons欄拖拽一個QPushButton到主窗口中,并將按鈕的顯示標簽修改為“計算”
添加按鈕修改按鈕顯示文本的方法有兩個
然后,我們來看一下如何放置這個按鈕,即這個按鈕的尺寸和位置
調整按鈕位置和大小尺寸我們通過屬性編輯窗口中的“geometry”的字段,依次修改對應的值
咱們再來看一下轉換成Python代碼后的樣子
self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(370, 170, 131, 41)) self.pushButton.setObjectName("pushButton")可以看到我們實例化了一個QPushButton轉換,通過setGeometry方法設置了它的geometry屬性,并且傳入了X=370 Y=170 width=131 height=41的參數;
這樣,就實現了和Qt Designer相同的效果,而這個轉換后的python文件,就可以被其他的Python函數調用了。
我們來多放幾個控件,嘗試著做一個好玩的小玩具吧
放置多個控件我們在其中添加了一些控件:
從Display Widgets中,拖拽了6個QLabel分別命名為“一月”,“二月”,“三月”,“四月”,“收入”,“支出”;
從Input Widgets中,拖拽了8個Double Spin Box控件,并作為主要數據的輸入框;
咱們再來看看對應的Python代碼會是什么樣子吧
Python代碼紅框中的代碼
(第29行)
self.label_2 = QtWidgets.QLabel(self.centralwidget)實例話了一個QLabel,并起名為label_2;
(第30行)
self.label_2.setGeometry(QtCore.QRect(180, 100, 81, 41))設置了這個控件的絕對位置為180,100,81,41;
為了大伙能更清楚的看清楚細節,我們將字體調大了一些,這里我設置了字體大小為24
通過代碼,我們可以看到
font = QtGui.QFont() font.setPointSize(24) self.label_2.setFont(font)首先實例化了一個字體實例font,設置字體屬性為24,將這個字體實例傳入label_2的setFont方法中,就完成了設置label_2字體大小的操作。
之后的代碼就類似了:實例化控件,設置字體大小,設置控件絕對位置。
所謂的絕對位置,是說控件所處于主窗口的x和y的坐標,不論主窗口的怎么改變,控件的位置都不會改變。
那有沒有更加靈活的布局方式,在改變窗口大小的時候,控件會自動調整位置呢?
使用布局管理器布局
我們使用絕對坐標和大小的方式布局,每次都需要手動修改位置,比較麻煩;而且有時候窗口大小變化了,控件并不能自己調整大小。
接下來,我們將會使用布局管理器學習和設計布局
咱們在進行下一步操作之前呢,需要先使用一個小技巧,使我們的布局更合理
在左側的QLabel控件的上方添加一個Qlabel控件,顯示文本置為空,為什么要這么做呢?請看木辛老師接下來的講解吧~
垂直布局
咱們選擇左側的4個QLabel控件(包含后來添加的空的QLabel),點擊鼠標右鍵,在彈出的菜單中選擇“布局” —> “垂直布局”,大家看看效果,這“3”個控件(有一個“看不見”的控件)是不是都在縱向對齊了呀?
是的,選擇垂直布局之后,所選擇的控件會以左邊為基礎,在縱向方向上對齊。
我們看一下轉換后的Python代碼是怎樣的:
垂直布局代碼是不是很清晰呀?
首先,會實例化一個QVBoxLayout類,木辛老師也給大家講過,水平布局的實例化方法(傳送門:《木辛老師的編程課堂:Python和Qt第2講之布局管理初探(三)》);
然后,咱們創建的多個QLabel會被添加入這個垂直布局中;這樣,系統就會將包含的多有控件在垂直方向自動左對齊了;
大家有沒有注意到:在屬性編輯器中,geometry屬性變成了灰色不可用,這說明這些控件的位置和大小已經由垂直布局管理器接管,與geometry無關了。
屬性編輯器網格布局
接下來,我們選中中間的10個輸入框控件,點擊鼠標右鍵,在彈出的快捷菜單中選擇“布局” —>“柵格布局”,看看效果。
使用柵格布局柵格布局的意思就是該布局管理器的窗口呈網格狀排列。本來這8個零散的窗口控件就是要呈網格狀排列,因此使用柵格布局管理器正好合適。
咱們看一下轉換成Python代碼轉換的效果吧
Python代碼轉換通過這個源代碼,可以看出:只要實例化QGridLayout對象,就可以生成一個grid layout一個對象,將對應控件加入到這個布局管理器中,就可以將布局控制權交出給管理器了。
水平布局
從Qt Designer的左側的Spacers欄分別將Horizontal Spacer和Vertical Spacer窗口控件拖拽到主窗口中,從Display Widgets欄將Horizontal Line窗口控件拖拽到主窗口中,之后選擇當前主窗口中所有控件,點擊鼠標右鍵,在彈出的快捷菜單中選擇“布局” —>“水平布局”,看看效果。
使用水平布局我們通過Qt Designer的菜單欄中“窗體”中的預覽選項,或者使用快捷鍵command+R既可以盡心預覽效果,非常方便喲!
使用預覽查看學習了這么多布局管理器對窗體進行布局,大家已經是不是已經熟悉了布局的基礎操作了呀?
也許經過多次的布局修改和調整,咱們的界面已經非常亂了,針對這種情況,Qt Designer提供了一個解決方法徹底修改布局:鼠標右鍵單擊已存在的布局,在彈出的快捷菜單中選擇“布局” —>“打破布局”。
好了,今天咱們就先講到這里吧。
請持續關注木辛老師的編程課喲,后續更多精彩陸續到來!
快樂編程,快樂成長!
總結
以上是生活随笔為你收集整理的python 读取鼠标选中文本_木辛老师的编程课堂:Python和Qt之页面布局实战篇(一)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python制作gif动画_实用的Pyt
- 下一篇: cuda 9.0 安装torch 0.4