[gelöst] Problem mit QPushButton.hide(), Qt4, OpenSUSE 10.3

Alles rund um die Programmierung mit Qt
Antworten
preklov
Beiträge: 4
Registriert: 4. November 2007 15:00

[gelöst] Problem mit QPushButton.hide(), Qt4, OpenSUSE 10.3

Beitrag von preklov »

Ich bin Anfänger mit Qt und habe ein Projekt eines Bridge-Biettrainers begonnen.

Die Karten der 4 Spieler werden gemischt und im Fenster oben, rechts, unten, bzw. links angezeigt. Dann öffnet sich der QDialog mit 37 QPushButtons zur Auswahl des Gebots. Die Pushbuttons haben QIcons als Symbole. Nach dem Gebot wird der Dialog zum nächsten Spieler verschoben, der ein höheres Gebot machen muss.

Es sollen nur noch die erlaubten Gebote angezeigt werden. Außerdem soll je nach vorherigem Gebot und Spieler der 37. Button variiert werden.

Methoden: hide() bzw. setIcon(...) und show()

Mein Problem: Das funktioniert zwar wunderbar unter Windows XP, unter Linux aber werden zwar die Pushbuttons deaktiviert, aber die zu verbergenden Icons werden außer dem letzten angezeigt. Wer kennt ein solches Phänomen?

Qt4.3.1, OpenSUSE10.3. KDE3.5.7 mit Qt3.3.8.

Kann Qt3 Probleme machen? Braucht Ihr meinen Code?

Volker
Zuletzt geändert von preklov am 27. November 2007 18:51, insgesamt 2-mal geändert.
preklov
Beiträge: 4
Registriert: 4. November 2007 15:00

Beitrag von preklov »

Zur weiteren Information, wie es aussehen soll, mit den notwendigen Quellen:

http://www.uni-due.de/~abi070/Qt-Problem.html

Gruß
Volker
preklov
Beiträge: 4
Registriert: 4. November 2007 15:00

Beitrag von preklov »

Ich habe meine Frage auch an das englischsprachige Forum www.qtforum.org gepostet.

Volker
preklov
Beiträge: 4
Registriert: 4. November 2007 15:00

Beitrag von preklov »

Das Problem ist gelöst dank einem Workaround von Stian von Trolltech :D

Meinen herzlichen Dank an ihn.

Nur 1 Zeile zwischen move und exec:

....
move(x, y);
QMetaObject::invokeMethod(this, "repaint", Qt::QueuedConnection);
exec();
...

Ich bin sicher, dass ich das auch an anderer Stelle benötigen werde.

Vvolker
Antworten