Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Qt, Widget-Größe automatisch ändern

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.10.2003
    Beiträge
    42

    Qt, Widget-Größe automatisch ändern

    Bei allen möglichen Programmen ist die Größe der Objekte in den Fenstern immer davon abhängig, wie groß das Fenster selbst ist. Das heißt, wenn ich das Fenster breiter ziehe, wird auch ein QTextEdit darin breiter.
    Da Qt für mch komplett neu ist, finde ich absolut keine Möglichkeit, so etwas hinzubekommen

    Als Beispiel für so etwas, damit ihr versteht, wie ich es meine, mal zwei Screenshots von einem anderen Qt-Programm:

    Screen #1
    Screen #2
    (Bei meinem Programm ist dass so, dass wenn man das Fenster breiter zieht, das QTextEdit so bleibt wie vorher, und rechts davon nur grau ist. Bei den Screenshots sieht man dass es danach eine andere größe hat.)

    Sollte das nicht ohne weiteres gehen, gibt es dann irgendwelche Signals, die einen darüber informieren, wenn sich die größe des Fensters ändert, damit man auch die Größe der Objekte ändern kann?

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Signals und Slots wirst du dafür nicht brauchen, dafür gibt es Layoutmanager. Wenn du sowas wie deine Screenshots hinbekommen willst, bietet sich vielleicht die QVBox als Basisklasse für dein Hauptwidget an.

  3. #3
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    LayoutManager sind wirklich was praktisches - dann musst du dich nämlich eben nicht um die SIGNALS und SLOTS für die Grössenänderung des Fensters kümmern.
    Das geht dann automatisch. Ist vor allem nützlich, wenn du z.B. nicht weiss, wie die Schriftgrösse auf dem Zielsystem sein wird - dann kümmert sich ein richtig eingestellter Layoutmanager automatisch darum.

    Die Technik ist allgemein sehr, bei Windows-Programmierern leider aber kaum verbreitet. (Die Dialoge dort sind ja meist von einer Fixen grösse...)

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  4. #4
    Registrierter Benutzer
    Registriert seit
    28.10.2003
    Beiträge
    42
    THX, das mit QVBox scheint erstmal ganz gut zu klappen, erst wenn ich eine QHBox in die QVBox mache, funktioniert nicht mehr alles, wie es soll (Es wird in der QHBox nur das erste der beiden enthaltenen Objekte angezeigt ).

    Was ist ein LayoutManager??

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Das könnte dir helfen:
    http://doc.trolltech.com/3.2/layout.html

    Ein Layoutmanager ist eine Klasse, die sich darum kümmert, wie viel Platz ein Widget im Fenster bekommt. Man kann bei jedem Widget einstellen, ob das Widget in der Größe horizontal/vertikal verändert werden kann, und, ob es sinn macht. Mit diesen Informationen kann man dann die Größe eines jeden Widgets neu berechnen, wenn die Größe des Fensters verändert wurde. Einfach mal ein bißchen mit dem Designer rumspielen und mehrere Widgets in Layouts packen. Die Buttons dafür findest du oben rechts in der Toolbar.

  6. #6
    Registrierter Benutzer
    Registriert seit
    28.10.2003
    Beiträge
    42
    Ok, THX, ich hab das Fenster jetzt hinbekommen wie es soll

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •