[gelöst] Auf Veränderung der Fenstergröße reagieren

Alles rund um die Programmierung mit Qt
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

QTableWidgetItem::QTableWidgetItem ( const QIcon & icon, const QString & text, int type = Type )
Constructs a table item with the given icon and text.
See also type().
und das Item hat auch flags die du setzen kannst... n atürlich auch eine methode namens setCheckState...

und deine Table hat ne Methode um Items an row, col mit item hinzuzufügen :D


also mach dir ein item ... mach die einstellungen des Items und adde es an die tabelle
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

aah...wie ich beim erneuten Durchlesen meiner Frage feststelle ist diese ja ziemlich doppeldeutig. Und du hast es gerade andersrum verstanden. Sorry :D

Also nochmal. Wie ich Icon, Checkstate und Text setzen kann ist mir klar.
Meine Frage bezog sich auf die räumliche Ausrichtung.
Standardmäßig ist die Checkstate links, das Icon in der Mitte und der Text rechts daneben.
Wie bekomme ich nun den Text "südlich" vom Icon gesetzt? Und am besten die Checkstate-Box gleich mit dazu unterhalb vom Icon.

Ich hoffe, es ist nun verständlicher :)
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

ok, jetzt hab ich doch noch ein Problem. =)

Ich habe nun die resizeEvent()-Methode von QWidget überschrieben. Doch wenn der Benutzer nun am Fenster zieht, wird dabei ständig die Methode ausgelöst.
Was bei der Neuberechnung natürlich nicht gerade sinnvoll ist.
Habe aber leider kein anderes Event gefunden, dass nur auslöst wenn der ResizeVorgang beendet wurde.

Kann ich das vielleicht mit nem Timer oder sowas lösen, erscheint mir aber nicht gerade eine gute Lösung zu sein.

Jemand eine Idee?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

das mit der Orientation hab ich leider keine Ahnung ;-) hab das noch net gemacht.
This event handler can be reimplemented in a subclass to receive widget resize events which are passed in the event parameter. When resizeEvent() is called, the widget already has its new geometry. The old size is accessible through QResizeEvent::oldSize().
The widget will be erased and receive a paint event immediately after processing the resize event. No drawing need be (or should be) done inside this handler.
See also moveEvent(), event(), resize(), QResizeEvent, paintEvent(), and Scribble Example


Resize events are sent to widgets that have been resized.
The event handler QWidget::resizeEvent() receives resize events.
See also QWidget::resize() and QWidget::setGeometry().

Code: Alles auswählen

protected:
     void resizeEvent(QResizeEvent *event);

Code: Alles auswählen

void ScribbleArea::resizeEvent(QResizeEvent *event)
 {
     if (width() > image.width() || height() > image.height()) {
         int newWidth = qMax(width() + 128, image.width());
         int newHeight = qMax(height() + 128, image.height());
         resizeImage(&image, QSize(newWidth, newHeight));
         update();
     }
     QWidget::resizeEvent(event);
 }
Zuletzt geändert von AuE am 23. Oktober 2008 12:26, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich hab jetzt den ganzen Thread nicht mehr durchgelesen, aber es gab mal von Trolltech einen Beispiel-Code und Demos dazu, wo man ein QItemDelegate dazu verwendete, daß wenn die Maus darüber bewegt wurde, verschiedene QActions angezeigt wurden. Dies wäre event. in Verbindung mit einer QListView (wie oben vorgeschlagen) etwas für dich. Ich finde den Code nur selber nicht mehr. Vielleicht weis ihr jemand anderes noch was...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

hab grad mal durch die Qt Demos gesnifft... schau dir mal das Icons beispiel unter "Widgets" an... da gibbet sogar ganzen Quellcode mit zu ;-)
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

Danke an Euch beide für die Tipps.

Wobei ich jetzt nicht den direkten Zusammenhang zwischen meinem resize Problem und der Icons-Demo erkennen kann :)

Werds weiter versuchen und den Thread mal als gelöst kennzeichnen, da das resizeEvent ja eigentlich das war was ich gesucht hatte. Vielleicht ist die Berechnung nicht allzu aufwendig. Ich muss die QTableWidgetItems ja nicht immer neu erstellen sondern lösche reorganisiere ja nur :)

Viele Grüße
jerry42
Antworten