说明
伙伴关系:设置两个控件之间的关联,通过一个控件控制另一个控件
测试Demo
import sys
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.QtWidgets import QLabel, QLineEdit, QPushButton
from PyQt5.QtWidgets import QGridLayout
class QLabelBuddyDemo(QDialog) :
def __init__(self):
super(QLabelBuddyDemo, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QLabel与伙伴控件')
self.resize(500, 300)
nameLabel = QLabel('姓名(&N)', self) # 新建标签控件, "&N"则表示该控件的快捷键Alt+N
nameLineEdit = QLineEdit(self) # 新建单行编辑控件
nameLabel.setBuddy(nameLineEdit) # 设置伙伴控件
passwordLabel = QLabel('密码(&P)', self) # 新建标签控件, "&P"则表示该控件的快捷键, Alt+P
passwordLineEdit = QLineEdit(self) # 新建单行编辑控件
passwordLabel.setBuddy(passwordLineEdit) # 设置伙伴控件
# 新建两个按钮
btnOK = QPushButton('&OK')
btnCancel = QPushButton('&Cancel')
# 新建栅格布局
mainLayout = QGridLayout(self)
# 添加控件
mainLayout.addWidget(nameLabel,0,0)
mainLayout.addWidget(nameLineEdit, 0, 1, 1, 2)
mainLayout.addWidget(passwordLabel, 1, 0)
mainLayout.addWidget(passwordLineEdit, 1, 1, 1, 2)
mainLayout.addWidget(btnOK, 2, 1)
mainLayout.addWidget(btnCancel, 2, 2)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QLabelBuddyDemo()
main.show()
sys.exit(app.exec_())
运行效果
点击键盘 Alt+N、Alt+P 即可在姓名和秘密之间进行切换。