3 Stimmen

wie man Standard-Symbole mit Qt verwendet

Ich benutze nur Qt (obwohl PyQt) und ich bekomme keine Symbole, wenn ich z.B. QMessageBox.warning() aufrufe. Gibt es eine Möglichkeit, die Standard-Symbole der Plattform zu verwenden? Derzeit verwende ich den vollständigeren QMessageBox-Konstruktor und rufe setIconPixmap auf.

0 Stimmen

Posten Sie etwas Code, Sie sollten die Pixmap nicht setzen müssen, damit das Warnsymbol angezeigt wird. Läuft das unter Windows/Mac/Linux?

0 Stimmen

Tut mir leid, ich habe das Original verloren, aber es war etwas Einfaches. Mit Ihrer funktioniert es nicht.

4voto

Giancarlo Punkte 4381

http://doc.qt.io/qt-5/qmessagebox.html

aus dem obigen Link:

QMessageBox unterstützt vier vordefinierte Nachrichtenschweregrade oder Nachrichtentypen, die sich eigentlich nur durch das vordefinierte Symbol unterscheiden, das sie jeweils anzeigen. Legen Sie einen der vier vordefinierten Nachrichtentypen fest, indem Sie die Icon-Eigenschaft auf eines der vordefinierten Icons setzen.

Sie sollten daher den QMessageBox-Konstruktor verwenden:

QMessageBox ( Icon icon, const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent = 0, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint )

und Sie können eines dieser Symbole verwenden:

http://doc.qt.io/qt-5/qmessagebox.html#Icon-enum

können Sie zum Beispiel diesen Parameter für das Symbol übergeben: QMessageBox::Warning

HTH! grüßt

1voto

Ich bin nicht allzu vertraut mit der Verwendung von Qt über Python oder mit QMessageBox. Ein kurzer Blick in die Dokumentation deutet jedoch darauf hin, dass eine Warnung das Warnsymbol verwenden würde, das die Standardsymbole der Plattform sein sollten, wenn sie nicht geändert wurden. Haben Sie versucht, im Bug-Tracking-System von Qt nachzusehen, ob es sich um einen Fehler handelt? Oder einen Bug/Feature-Request dafür einzureichen?

1voto

Ich bin mir nicht sicher, wie Sie das Nachrichtenfeld verwenden, aber ich verwende es folgendermaßen:

from PyQt4 import QtGui
QtGui.QMessageBox.warning(parent, dialogTitle, dialogText)

Wenn dies nicht zu einem Warnsymbol in Ihrem Nachrichtenfeld führt, sollten Sie vielleicht in Erwägung ziehen, Ihr PyQt auf die neueste Version zu aktualisieren, da ich in der Vergangenheit bei einigen PyQt-Versionen kleine Fehler wie diesen erlebt habe.

0 Stimmen

Das habe ich, gerade heute... es gibt wahrscheinlich eine Bibliothek für die Icons, die ich nicht installiert habe. Bitte mach dir nicht zu viele Gedanken darüber, es sei denn, du weißt es schon (oder bist ein QT-Entwickler); für mich ist es kein großes Problem. cheers, Nicholas

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X