PyQt - 强制一个标签首先出现?

Emi*_*y C 8 python user-interface qt pyqt

快速问题 - 我正在使用pyqt中的GUI,它有两个选项卡.现在第二个选项卡在启动时始终打开,我认为这是因为它运行一个函数来查找要保留在QLineEdit中的文件名.我真的希望第一个标签出现在启动时.我该怎么做呢?

And*_*ndy 11

如果使用Qt Creator构建UI,则保存UI时处于活动状态的选项卡将设置为默认选项卡.您可以通过回Qt Creator中,选择你想成为默认的和重新保存它,并重新创建该选项卡纠正这种.ui.py文件.

或者,您可以使用QTabWidgets setCurrentIndex(int).

设置int等于要显示的选项卡的索引.

例:

from PyQt4 import QtGui
from PyQt4 import QtCore
import sys

def main():   
    app     = QtGui.QApplication(sys.argv)
    tabs    = QtGui.QTabWidget()    
    tab1    = QtGui.QWidget()   
    tab2    = QtGui.QWidget()
    tab3    = QtGui.QWidget()
    tabs.addTab(tab1,"Tab 1")
    tabs.addTab(tab2,"Tab 2")
    tabs.addTab(tab3,"Tab 3")   
    tabs.setWindowTitle('PyQt QTabWidget Add Tabs and Widgets Inside Tab')
    tabs.show() 

    # This will set "Tab 2" to be shown when the application launches
    tabs.setCurrentIndex(1)   
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

这将启动一个"Tab 2"激活的窗口.

标签2处于活动状态

如果删除了下面的行,则"Tab 1"在启动时处于活动状态

tabs.setCurrentIndex(1)
Run Code Online (Sandbox Code Playgroud)