Я хочу установить изображение на QPushButton
, а размер QPushButton
должен зависеть от размера изображения. Я могу сделать это при использовании QLabel
, но не с QPushButton
.
Итак, если у кого-то есть решение, то, пожалуйста, помогите мне.
Я хочу установить изображение на QPushButton
, а размер QPushButton
должен зависеть от размера изображения. Я могу сделать это при использовании QLabel
, но не с QPushButton
.
Итак, если у кого-то есть решение, то, пожалуйста, помогите мне.
Что вы можете сделать, это использовать pixmap в качестве значка, а затем поместить этот значок на кнопку.
Чтобы убедиться, что размер кнопки будет прав, вы должны повторно нарисовать значок в соответствии с размером pixmap.
Что-то вроде этого должно работать:
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
QPushbutton *button = new QPushbutton;
button->setIcon(QIcon("<imagePath>"));
button->setIconSize(QSize(65,65));
Вы также можете установить размер кнопки.
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
button->setFixedSize(pixmap.rect().size());
Вы также можете использовать:
button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);");
Примечание. Это немного взломано. Вы должны использовать это только в качестве крайней меры. Значки должны быть установлены из кода C++
или Qt Designer
.
Я не думаю, что вы можете устанавливать изображения произвольного размера в любом из существующих классов кнопок. Если вы хотите, чтобы простое изображение выглядело как кнопка, вы можете написать свой собственный подкласс QAbstractButton, что-то вроде:
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 );
}
};
Это старый, но он по-прежнему полезен, Полностью протестирован с QT5.3.
Будьте полезны, например, относительно пути ressources:
В моем случае я создал каталог ressources с именем "Ressources" в проекте исходного каталога.
В папке "ressources" содержатся изображения и значки. Затем я добавил префикс "Изображения" в Qt. Таким образом, путь pixmap станет:
QPixmap pixmap ( ":/images/Ressources/icone_pdf.png" );
JF
Вы можете сделать это в QtDesigner. Просто нажмите на кнопку, затем перейдите в свойство значка, а затем выберите файл изображения.
Просто используйте этот код
QPixmap pixmap ( "path_to_icon" );
QIcon iconBack (pixmap),
Обратите внимание: "path_to_icon" - это путь к значку изображения в файле .qrc вашего проекта
Вы можете найти добавить .qrc файл здесь