我想设置一个图像QPushButton
,其大小QPushButton
应取决于图像的大小.我可以在使用时执行此操作QLabel
,但不能使用QPushButton
.
所以,如果有人有解决方案,那么请帮助我.
Jér*_*ôme 62
您可以做的是使用像素图作为图标,然后将此图标放在按钮上.
要确保按钮的大小正确,您必须根据像素图大小重新设置图标.
这样的事情应该有效:
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
Run Code Online (Sandbox Code Playgroud)
Sha*_*adi 40
QPushButton *button = new QPushButton;
button->setIcon(QIcon(":/icons/..."));
button->setIconSize(QSize(65, 65));
Run Code Online (Sandbox Code Playgroud)
您可能还想设置按钮大小.
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
button->setFixedSize(pixmap.rect().size());
Run Code Online (Sandbox Code Playgroud)
您还可以使用:
button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);");
Run Code Online (Sandbox Code Playgroud)
注意:这有点hacky.你应该只使用它作为最后的手段.图标应该从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 );
}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
124464 次 |
最近记录: |