1. 程式人生 > 其它 >GUI程式設計Pyqt5之設定夥伴關係

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

技術標籤:# PyQt5

Pyqt5之設定夥伴關係


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

例子:
在這裡插入圖片描述

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class AppGui(QWidget):
    def __init__(self):
        super(AppGui, self).__init__()
        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() sexLineEdit = QLineEdit() # 標籤和行編輯器新增打相應佈局管理器中 layout1.addWidget(label1) layout1.addWidget(nameLineEdit) layout2.addWidget(label2) layout2.addWidget(sexLineEdit) # 分別設定夥伴關係 label1.setBuddy(nameLineEdit) label2.setBuddy(sexLineEdit) # 將子佈局管理器新增到父佈局管理器中 layout.addLayout(layout1) layout.addLayout(layout2) # 設定全域性佈局管理器 self.setLayout(layout) if __name__ == '__main__': # 建立應用程式 app = QApplication(sys.argv) # 在應用程式裡建立視窗 ui = AppGui() # 顯示視窗 ui.show() # 進入程式的主迴圈、並通過exit函式確保主迴圈安全結束 sys.exit(app.exec_())