Pyqt5之设置tab顺序
对于一个应用程序,我们有时总希望使用Tab键来将焦点从一个部件移动到下一个部件。在设计模式,设计器提供了Tab键的设置功能。上面程序的设计模式中,单击上边栏的“编辑Tab顺序(Edit Tab Order)”按钮进人编辑Tab键顺序模式,这时已经显示出了各个部件的Tab键顺序,只需要单击这些数字即可以更改。需要说明,当程序启动时,焦点会在Tab键顺序为1的部件上。
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()
# 设置标签和行编辑器
label1 = QLabel("我是个窗口1")
label1.setText("姓名")
label2 = QLabel("我是个窗口2")
label2.setText("性别")
label3 = QLabel("我是个窗口3")
label3.setText("年龄")
# 这里要把窗口对象传进去不然tab顺序不生效
lineEdit1 = QLineEdit(self)
lineEdit2 = QLineEdit(self)
lineEdit3 = QLineEdit(self)
# 将部件添加到布局管理器中
layout.addWidget(label1)
layout.addWidget(lineEdit1)
layout.addWidget(label2)
layout.addWidget(lineEdit2)
layout.addWidget(label3)
layout.addWidget(lineEdit3)
self.setTabOrder(lineEdit2, lineEdit1) # lineEdit2 -->lineEdit1 转移顺序
self.setTabOrder(lineEdit1, lineEdit3) # lineEdit1 -->lineEdit3
# 设置全局布局管理器
self.setLayout(layout)
if __name__ == '__main__':
# 创建应用程序
app = QApplication(sys.argv)
# 在应用程序里创建窗口
ui = AppGui()
# 显示窗口
ui.show()
# 进入程序的主循环、并通过exit函数确保主循环安全结束
sys.exit(app.exec_())