Właśnie zacząłem używać pyqt4. I przestrzegać samouczek (http://zetcode.com/tutorials/pyqt4/) jedna rzecz, która mnie zastanawia to ta część:Wiele okien w PyQt4?
def main():
app = QtGui.QApplication(sys.argv)
ex = GUI()
sys.exit(app.exec())
A powodem tego wyjaśnię tutaj:
zrobiłem mały program, który otwiera kolejne cztery okna, z wyjątkiem pierwsze okno główne. Próbowałem więc powtórzyć to, co zobaczyłem, pracowałem z głównym oknem i stworzyłem klasę dla każdego nowego okna i próbowałem zrobić to samo z powyższym. Obecnie wygląda to tak:
def main2():
#app = QtGui.QApplication(sys.argv)
ex2 = Settings()
sys.exit(app.exec())
Jak widać mam zmodyfikowano go. Gdybym opuścił pierwszą linię w funkcji niekomunikowanej, program się zawiesił. Próbowałem obejść się bez części sys.exit (app.exec_()) , ale to spowodowałoby, że nowe okno zamknęłoby się tylko po milisekundach. W ten sposób wszystko działa i działa. Tyle tylko, że w oknie poleceń wyświetlany jest komunikat o błędzie. Nie wiem, jak to naprawić, ponieważ nie mogę usunąć ostatniej linii, a nie wiem, co zastąpić "" app " z.
Wiem, że prawdopodobnie robię nowe okna źle od samego początku, ale nie wiem, jak zrobić te okna otwarte z oryginalnego okna w jakikolwiek inny sposób. Nie byłem w stanie uzyskać niczego innego do pracy, a to przynajmniej działa i działa teraz. Tak więc jedynym problemem są komunikaty o błędach w podpowiedzi, dobrze byłoby się ich pozbyć :)
Dzięki za pomoc (skomplikowaną i łatwą)!
Zapomniałem wspomnieć, zrobiłem zajęcia zacząć tak:
class GUI(QtGui.QMainWindow):
def __init__(self):
super(GUI, self).__init__()
self.initUI()
i
class Settings(QtGui.QWidget):
def __init__(self):
super(Settings, self).__init__()
...here goes some more...
self.initUI2()
i otworzyć Ustawienia-okno wywołując main2()
Dziękuję, że nie wyczyścić pewne rzeczy. Ale nie mogę pokazać wszystkich okien w tym samym czasie. Najpierw jest to QMainWindow, który powinien pojawić się przy starcie, a od tego zależy, co się otworzy, ponieważ mogę wybrać różne opcje w pasku menu. Na przykład okno pomocy lub okno ustawień. –
@right_there: musisz utworzyć (lub przynajmniej pokazać) swoje okno ustawień w odpowiedzi na wydarzenie, zobacz samouczek, który śledziłeś na temat wydarzeń: http://zetcode.com/tutorials/pyqt4/eventsandsignals/ – Julien
Oh, I ' udało się to! Po prostu nie chcę umieszczać tutaj całego kodu, to jest jak 560 linii. Mam wszystko działa, okno otwarte po kliknięciu przycisków.Mam fajny GUI z menokarem, ustawiłem wszystkie przyciski w oknie settingswindow itp. Po prostu wyrzuca komunikaty o błędach o tym, co opisałem w pierwszym poście, i nie wiem jak to wszystko zmienić. Może powinienem podać tutaj trochę więcej kodu? –