Wie Schriftart, Größe und Farbe für den Text von QPushButton in Qt5.6.1 mit QPalette? Ich bin gespannt, wie wir diese Eigenschaften ohne QStyleSheet in Qt setzen können. Außerdem können wir Hex-Farbcode in QT einstellen. Bitte schlagen Sie eine Möglichkeit vor, mit QPalette zu arbeiten. DankWie Text auf Qpushbutton mit QPalette anpassen?
Antwort
Wie Schriftart, Größe und Farbe für den Text von QPushButton in Qt5.6.1 mit QPalette setzen?
Ein QPalette
enthält Farbgruppen für jeden Widget-Status. Es enthält keine Schrift-/Größeninformationen.
Sie können QWidget::setPalette()
verwenden, um bestimmte color roles (Button, ButtonText, Window...) Zu ändern, und QWidget::setFont()
verwenden, um Schriftfamilie/Schriftgröße zu ändern. Zum Beispiel:
QPushButton button("Press Me");
//get initial default palette
QPalette pal= button.palette();
//change some color roles
pal.setColor(QPalette::Window, QColor(255, 0, 0)); //red color
pal.setColor(QPalette::Button, QColor(0x00, 0x00, 0xff)); //blue color (hex representation)
pal.setColor(QPalette::ButtonText, QColor(Qt::yellow)); //Qt global color
button.setPalette(pal);
//change font family and size
button.setFont(QFont("Helvetica [Cronyx]", 15, QFont::Bold));
Damit Paletten richtig funktioniert, können Sie in der Anwendung der ersten Verwendung Fusion Stil wollen, kann durch den Aufruf:
QApplication::setStyle(QStyleFactory::create("Fusion"));
vor der QApplication
Instanz in main()
instanziieren, weil einige Arten tun Verwenden Sie die Palette nicht für alle Zeichnungen, wenn sie beispielsweise native Motiv-Engines verwenden. Dies gilt sowohl für die Windows XP-, Windows Vista- als auch die OS X-Stile.
Sie können auch die Palette/Schriftart für die gesamte Anwendung festlegen, so dass Sie diese Farben in allen Widgets in der Anwendung erhalten. Etwas wie folgt aus:
#include <QtWidgets>
int main(int argc, char** argv)
{
QApplication::setStyle(QStyleFactory::create("Fusion"));
QPalette pal= QApplication::palette();
pal.setColor(QPalette::Window, QColor(Qt::red));
pal.setColor(QPalette::Button, QColor(Qt::blue));
pal.setColor(QPalette::ButtonText, QColor(Qt::yellow));
pal.setBrush(QPalette::WindowText, QBrush(QColor(Qt::yellow)));
pal.setColor(QPalette::Highlight, QColor(Qt::green));
//further palette customization. . .
QApplication::setPalette(pal);
QApplication::setFont(QFont("Helvetica [Cronyx]", 15, QFont::Bold));
QApplication a(argc, argv);
//setup and show GUI components
return a.exec();
}
ich mit dem oben genannten Punkte stimmen.
Im Folgenden ist die ein anderer Ansatz, um die Schriftartanpassung mit QWidgets zu erreichen.
QPushButton *button3 = new QPushButton("CheckFont", this); button3->setGeometry(QRect(QPoint(50,50),QSize(200,50))); QFont FontObj; FontObj.setFamily(QStringLiteral("Helvetica [Cronyx]")); FontObj.setPointSize(15); FontObj.setBold(true); FontObj.setUnderline(true); button3->setFont(FontObj);
Auch wenn Farbcode ist in Format wie „# FFFFFF“ (die weiße Farbcode ist), dann können Sie wie folgt verwenden, um die Hex-Farbcode mit QPalette einzustellen.
pal.setColor(QPalette::Button, QColor(QRgb("#ffffff")));
ODER
pal.setColor(QPalette::Button, QColor("#ffffff"));
- 1. Wie ändere ich QPushButton Text und Hintergrundfarbe
- 2. PyQt4 QPushButton Text- und Symbolausrichtung
- 3. Get QPushButton Gepresste Hintergrundfarbe
- 4. QPalette funktioniert nicht auf Sub QWidget
- 5. Qt QPushbutton Icon über Text
- 6. Wie eine QPushButton auf eine Funktion
- 7. Abgerundetes Symbol auf Qpushbutton
- 8. QPushButton: Ausrichten von Symbol und Text
- 9. Anpassen der Schriftgröße - Schrift Eigenschaft
- 10. Wie programmgesteuert auf einen QPushButton klicken
- 11. Wie setze ich ein Bild auf QPushButton?
- 12. Construct QPushButton mit QIcon alignleft und Text Center ausrichten
- 13. Wie mache ich QPushButton editierbaren Text, wenn man darauf klickt?
- 14. UIActivityViewController Text anpassen basierend auf ausgewählten Aktivität
- 15. Iterate QPushButton
- 16. QPushButton visuelles Problem
- 17. Text an HTML5 Canvas anpassen?
- 18. Subclassing von QPushButton
- 19. Höhe von Text Eingabefeld mit Benutzereingabe anpassen
- 20. Cmake Link Problem: undefined Verweis auf QPushButton
- 21. Detecting Eingabe auf einem QLineEdit oder QPushButton
- 22. QPushButton Hintergrundfarbe dynamisch
- 23. Hintergrund auf Text auf TextView in Android anpassen
- 24. Qt rightclick QPushButton
- 25. PyQt5: Wie kann ich einen QPushButton mit einem Steckplatz verbinden?
- 26. Verbinden QPushButton Jambi
- 27. QPushButton get Farbe
- 28. Wie gechecktes QPushButton aussieht wie beim Drücken?
- 29. Qt - QPushButton Newline funktioniert nicht
- 30. PyQt QPushButton Hintergrundfarbe
Haben Sie in der Dokumentation geschaut? 'QPushButton' erbt' QWidget' mit [font] (http://doc.qt.io/qt-5/qwidget.html#font-prop) und ['palette'] (http: // doc. qt.io/qt-5/qwidget.html#palette-prop) Eigenschaften. –