【问题标题】:PyQt - forcing one tab to appear first?PyQt - 强制一个选项卡首先出现?
【发布时间】:2015-04-26 22:13:38
【问题描述】:

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

【问题讨论】:

    标签: python qt user-interface pyqt


    【解决方案1】:

    如果您使用 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()
    

    这将启动一个“Tab 2”处于活动状态的窗口。

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

    tabs.setCurrentIndex(1)
    

    【讨论】:

      【解决方案2】:

      最好的办法是直接把“1”改成“0”:

      tabs.setCurrentIndex(1)
      

      喜欢

      tabs.setCurrentIndex(0)
      

      【讨论】:

        猜你喜欢
        • 2012-03-11
        • 1970-01-01
        • 2012-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多