from PyQt5.QtWidgets import *
import sys
class QlabelDemo(QDialog):
def __init__(self):
super().__init__()
self.setWindowTitle("QLabel快键键例子")
nameLb1 = QLabel('&Name',self) #建立快捷键
nameEd1 = QLineEdit(self) #建立单行文本输入框
nameLb1.setBuddy(nameEd1)
#可以使用快捷键快速定位到相关位置
#Alt+N:定位到NAME文本输入框
nameLb2 = QLabel('&Password',self)
nameEd2 = QLineEdit(self)
nameLb2.setBuddy(nameEd2)
btnOk = QPushButton('&OK')
btnCancel = QPushButton('&Cancel')
mainLayout = QGridLayout()
mainLayout.addWidget(nameLb1,0,0)
mainLayout.addWidget(nameEd1,0,1,1,2)
mainLayout.addWidget(nameLb2,1,0)
mainLayout.addWidget(nameEd2,1,1,1,2)
mainLayout.addWidget(btnOk,2,1)
mainLayout.addWidget(btnCancel,2,2)
self.setLayout(mainLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
labelDemo = QlabelDemo()
labelDemo.show()
sys.exit(app.exec_())
在弹出的窗口中,按“Alt+N”快捷键可以切换到第一个文本框,因为文本框已经通过setBuddy()函数与QLabel进行了关联。
设置快捷键的方式为‘&Name’,设置完成后,便可以通过Alt+第一个字母直接切换到该位置,或直接按下按钮。