GUI程式設計Pyqt5之設定夥伴關係

2021-10-19 02:54:42 字數 1689 閱讀 2693

講述表單布局管理器時提到了設定乙個標籤和乙個部件的夥伴關係。其實,夥伴 (buddy) 是在 qlabel 類中提出的乙個概念。因為乙個標籤經常用作乙個互動式部件的說明,就像在講表單布局管理器時看到的那樣,乙個 lineedit 部件前面有乙個標籤說明這個 lineedit 的作用。為了方便定位,qlabel 提供了乙個有用的機制,那就是提供了助記符來設定鍵盤焦點到對應的部件上,這個部件就叫這個 qlabel 的夥伴。其中助記符就是我們所說的加速鍵。使用英文標籤時,在字串的乙個字母前面新增「&」 符號,那麼就可以指定這個標籤的加速鍵是alt加上這個字母,而對於中文,需要在小括號中指定加速鍵字母。qt設計器中也提供了夥伴設計模式

例子:

import sys

from pyqt5.qtwidgets import *

from pyqt5.qtgui import *

from pyqt5.qtcore import *

def __init__(self):

) self.initui(

) def initui(self):

# self無父視窗,不是視窗部件,而是個視窗

self.setwindowtitle(

"我是widget"

)# 設定布局管理器

layout = qvboxlayout(

) layout1 = qhboxlayout(

) layout2 = qhboxlayout(

)# 設定標籤

label1 = qlabel(

"我是個視窗1"

) label1.settext(

"姓名(&n)"

) label2 = qlabel(

"我是個視窗2"

) label2.settext(

"性別(&s)"

)# 設定行編輯器

namelineedit = qlineedit(

) ***lineedit = qlineedit(

)# 標籤和行編輯器新增打相應布局管理器中

layout1.addwidget(label1)

layout1.addwidget(namelineedit)

layout2.addwidget(label2)

layout2.addwidget(***lineedit)

# 分別設定夥伴關係

label1.setbuddy(namelineedit)

label2.setbuddy(***lineedit)

# 將子布局管理器新增到父布局管理器中

layout.addlayout(layout1)

layout.addlayout(layout2)

# 設定全域性布局管理器

self.setlayout(layout)

if __name__ ==

'__main__'

:# 建立應用程式

# 在應用程式裡建立視窗

)# 顯示視窗

ui.show(

)# 進入程式的主迴圈、並通過exit函式確保主迴圈安全結束

))

GUI程式設計Pyqt5之QtDesigner控制項

垂直布局 verticallayout 水平布局 horizontallayout 網格布局 gridlayout 表單布局 formlayout 絕對布局 預設 水平間隔 horizontalspacer 豎直間隔 verticalspacer 常規按鈕 pushbutton 工具按鈕 toolb...

PyQt5之設定樣式

import sys from pyqt5 import qtcore from pyqt5.qtwidgets import from pyqt5.qtgui import from pyqt5.qtcore import class demo qwidget def init self supe...

PyQt5之選單程式設計

pyqt5是qt移植到python上形成的gui程式設計框架,自問世以來受到了越來越多的python程式設計師的喜愛,因為其具有如下優秀的特徵 接下來介紹一下pyqt5中如何程式設計實現選單。實現選單步驟很簡單 1 建立乙個選單欄 menubar self.menubar 2 新增選單 fileme...