Ich möchte ein Bild aktivieren QPushButton
, und die Größe von QPushButton
sollte von der Größe des Bildes abhängen. Ich kann dies tun, wenn ich es benutze QLabel
, aber nicht mit QPushButton
.
Wenn jemand eine Lösung hat, helfen Sie mir bitte.
Ich möchte ein Bild aktivieren QPushButton
, und die Größe von QPushButton
sollte von der Größe des Bildes abhängen. Ich kann dies tun, wenn ich es benutze QLabel
, aber nicht mit QPushButton
.
Wenn jemand eine Lösung hat, helfen Sie mir bitte.
Antworten:
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 Größe der Pixmap neu sortieren.
So etwas sollte funktionieren:
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
QPushButton *button = new QPushButton;
button->setIcon(QIcon(":/icons/..."));
button->setIconSize(QSize(65, 65));
Ich glaube nicht, dass Sie Bilder mit beliebiger Größe für eine der vorhandenen Schaltflächenklassen festlegen können. Wenn Sie möchten, dass sich ein einfaches Bild wie eine Schaltfläche verhält, können Sie Ihre eigene QAbstractButton-Unterklasse schreiben, etwa:
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 );
}
};
Dies ist alt, aber es ist immer noch nützlich. Vollständig mit QT5.3 getestet.
Seien Sie vorsichtig, Beispiel für den Ressourcenpfad:
In meinem Fall habe ich im Quellverzeichnisprojekt ein Ressourcenverzeichnis mit dem Namen "Ressources" erstellt.
Der Ordner "ressources" enthält Bilder und Symbole. Dann habe ich in Qt ein Präfix "Images" hinzugefügt. So wird der Pixmap-Pfad:
QPixmap pixmap (": / images / Ressources / icone_pdf.png");
JF
Sie können dies in QtDesigner tun. Klicken Sie einfach auf Ihre Schaltfläche, gehen Sie zur Symboleigenschaft und wählen Sie dann Ihre Bilddatei aus.