Seite 1 von 1

Widgets auf Fenstergröße anpassen

Verfasst: Dienstag 23. Februar 2010, 15:34
von ...
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,
...

Verfasst: Dienstag 23. Februar 2010, 21:28
von 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.

Verfasst: Dienstag 23. Februar 2010, 22:30
von ...

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,
...

Verfasst: Mittwoch 24. Februar 2010, 11:37
von lunar
Soweit ist schon alles ok … aber das Beispiel zeigt auch nicht viel.