it-swarm.com.de

Wie kann ich ein Bild auf QPushButton einstellen?

Ich möchte ein Bild auf QPushButton setzen, und die Größe von QPushButton sollte von der Größe des Bildes abhängen. Ich kann dies tun, wenn Sie QLabel verwenden, aber nicht mit QPushButton.

Wenn also jemand eine Lösung hat, dann hilf mir bitte.

61
greshi Gupta

Sie können eine Pixmap als Symbol verwenden und dieses Symbol dann auf die Schaltfläche setzen.

Um sicherzustellen, dass die Größe der Schaltfläche korrekt ist, müssen Sie das Symbol entsprechend der Pixelgröße anpassen.

So etwas sollte funktionieren:

QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
56
Jérôme
QPushButton *button = new QPushButton;
button->setIcon(QIcon(":/icons/..."));
button->setIconSize(QSize(65, 65));
35

Sie können auch die Tastengröße einstellen.

QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
button->setFixedSize(pixmap.rect().size());
9
Jonathan

Sie können auch verwenden:

button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);");

Hinweis : Dies ist ein bisschen hackig. Sie sollten dies nur als letzten Ausweg verwenden. Icons sollten aus C++-Code oder Qt Designer gesetzt werden.

7
Iuliu

Dies ist alt, aber es ist immer noch nützlich, Vollständig getestet mit QT5.3.

Seien Sie vorsichtig, Beispiel für den Ressourcenpfad:

In meinem Fall habe ich ein Ressourcenverzeichnis mit dem Namen "Ressourcen" im Quellverzeichnisprojekt erstellt.

Der Ordner "Ressourcen" enthält Bilder und Symbole. Dann fügte ich ein Präfix "Bilder" in Qt hinzu.

QPixmap pixmap (":/images/Ressources/icone_pdf.png");

JF

2
JFP74

Ich glaube nicht, dass Sie Bilder mit beliebiger Größe für eine der vorhandenen Schaltflächen festlegen können. Wenn Sie ein einfaches Bild wie eine Schaltfläche haben möchten, können Sie Ihre eigene QAbstractButton-Unterklasse schreiben.

class ImageButton : public QAbstractButton {
Q_OBJECT
public:
...
    void setPixmap( const QPixmap& pm ) { m_pixmap = pm; update(); }
    QSize sizeHint() const { return m_pixmap.size(); }
protected:
    void paintEvent( QPaintEvent* e ) {
        QPainter p( this );
        p.drawPixmap( 0, 0, m_pixmap );
    }
};
2
Frank Osterfeld

Sie können dies in QtDesigner tun. Klicken Sie einfach auf die Schaltfläche, wechseln Sie zur Symboleigenschaft und wählen Sie Ihre Bilddatei aus.

0
Nemeth Attila

Verwenden Sie einfach diesen Code

QPixmap pixmap("path_to_icon");
QIcon iconBack(pixmap);

Beachten Sie Folgendes: "path_to_icon" ist der Pfad des Bildsymbols in der Datei .qrc Ihres Projekts. Wie Sie .qrc-Datei hinzufügen, finden Sie hier .

0
dqthe
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/images/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
0
Daniel I. Cruz