PyQt-заставить одну вкладку появиться первой?

быстрый вопрос-я работаю над GUI в pyqt, и у него есть две вкладки. Сейчас вторая вкладка всегда открыта при запуске, я думаю, потому что она запускает функцию поиска имени файла для вставки в QLineEdit. Я бы очень хотел, чтобы первая вкладка появилась при запуске. Как мне это сделать?

2 ответов


если вы создаете свой пользовательский интерфейс с помощью Qt Creator, вкладка, которая была активна при сохранении пользовательского интерфейса, устанавливается как вкладка по умолчанию. Вы можете исправить это, вернувшись в Qt Creator, выбрав вкладку, которую вы хотите использовать по умолчанию, и сохранив ее и воссоздав .ui to .

кроме того, вы можете использовать QTabWidgets setCurrentIndex(int).

Set 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 2 is active

если строка ниже удалена, то "Tab 1" активна при запуске

tabs.setCurrentIndex(1)

лучший способ-просто изменить "1" на " 0 " в строке:

tabs.setCurrentIndex(1)

как

tabs.setCurrentIndex(0)