Szybkie pytanie - Pracuję nad GUI w pyqt i ma dwie zakładki. W tej chwili druga karta jest zawsze otwarta przy starcie, co moim zdaniem dzieje się tak dlatego, że uruchamia funkcję znajdowania pliku, który ma zostać umieszczony w QLineEdit. Naprawdę bardzo chciałbym, aby pierwsza karta pojawiła się na starcie. Jak miałbym to zrobić?PyQt - wymuszenie pojawienia się jednej karty?
6
A
Odpowiedz
9
Jeśli tworzysz swój interfejs użytkownika przy pomocy Qt Creator, zakładka, która była aktywna podczas zapisywania interfejsu użytkownika, jest ustawiona jako karta domyślna. Możesz to poprawić, przechodząc z powrotem do Qt Creator, wybierając tę kartę, która ma być domyślną, i zapisując ją i odtwarzając plik .ui
na .py
.
Alternatywnie można użyć QTabWidget
s setCurrentIndex(int)
.
Ustaw int
równy indeksowi karty, którą chcesz wyświetlić.
Przykład:
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()
To uruchomi okno, które ma "Tab 2" aktywne.
Jeśli poniżej linii zostanie usunięty, a następnie "Zakładka 1" jest aktywna w momencie wprowadzenia
tabs.setCurrentIndex(1)
Dziękuję, że naprawił! –