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
[gelöst] Problem mit QPushButton.hide(), Qt4, OpenSUSE 10.3
[gelöst] Problem mit QPushButton.hide(), Qt4, OpenSUSE 10.3
Zuletzt geändert von preklov am 27. November 2007 18:51, insgesamt 2-mal geändert.
Zur weiteren Information, wie es aussehen soll, mit den notwendigen Quellen:
http://www.uni-due.de/~abi070/Qt-Problem.html
Gruß
Volker
http://www.uni-due.de/~abi070/Qt-Problem.html
Gruß
Volker
Das Problem ist gelöst dank einem Workaround von Stian von Trolltech
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
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