Widgets auf Fenstergröße anpassen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
...
User
Beiträge: 116
Registriert: Mittwoch 23. Dezember 2009, 20:22

Hey!

Es gab zwar vor einiger Zeit schon einmal diesen Thread,
aber wirklich weiterhelfen tut er mir nicht.


Im Speziellen möchte ich einfach folgendes:

Ein QMainWindow,
darin ein QTabWidget welches das Window ausfüllt mit zunächst einem Tab
mit einem ausfüllenden QWidget.

Code: Alles auswählen

class MainGUI:
    
    '''Erstellt die GUI für das Hauptprogramm'''
    
    def __init__(self):
        self.Window = QtGui.QMainWindow()
        
        self.Window.TabLayout = QtGui.QTabWidget(self.Window)       
        self.Window.TabLayout.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)

        self.Window.TabLayout.updateGeometry()
        self.Window.TestWidget =  QtGui.QWidget()
        self.Window.TabLayout.addTab(self.Window.TestWidget, 'blub')
        
        self.Window.show()
so schaut es bei mir nach vielen Versuchen aus.
Diese setSizePolicy scheint nichts zu bringen... Keine ahnung wofür das ist. Klang so schön... Doku sagt auch nicht mehr als der Name...

Tja, und ab hier bin ich zu blöd... bzw - bis hier auch.

setSizeConstraint geht auch nicht...


lg,
...
lunar

Layout-Verwaltung nutzen. Wie das geht, steht in der Dokumentation.

Angesichts Deines Quelltexts aber kann ich Dir nur raten, GUI-Programme auf Deinem Lehrplan nach hinten zu verschieden. Die an dieser Stelle völlig fälschlich verwendete Klasse lässt mich fürchten, dass es Dir an Grundlagen zu objektorientierter Programmen, Vererbung und Klassen fehlt. Für die GUI-Programmierung aber sind das zwingende Voraussetzungen.
...
User
Beiträge: 116
Registriert: Mittwoch 23. Dezember 2009, 20:22

Code: Alles auswählen

class MainGUI(QtGui.QMainWindow):
   
    '''Erstellt die GUI für das Hauptprogramm'''
   
    def __init__(self):
        QtGui.QMainWindow.__init__(self)   
        self.TabLayout = QtGui.QTabWidget(self)

        self.setCentralWidget(self.TabLayout)
       

        self.TestWidget =  QtGui.QWidget(self)
        self.TabLayout.addTab(self.TestWidget, 'blub')
So sieht sie bis jetzt aus, seit ich sie umgeschrieben habe.
Davor hatte ich bei den Versuchen immer das Problem, dass das "Underlying C/C++ object has been deletet".

Weitere Funktionen sollen noch kommen...

Was ist sonst noch (abgesehen davon das es bisher nur die eine Funktion gibt) falsch?

BTW: Jetzt funktioniert es... Dokumentation des MainWindows half weiter...
Dann ist das mit dem kommenden Menü auch nichtmer so ein geraffel :)

lg,
...
lunar

Soweit ist schon alles ok … aber das Beispiel zeigt auch nicht viel.
Antworten