我有一个关于调整QPushButton上的图标大小的问题。目标系统是Linux上的Qt 4.8.6。我正在使用QPushButton创建仅带图标的按钮,没有文字。我希望尽可能大的图标以按钮为中心,包括一些边距。
我不希望按钮大小适应图像大小,我希望图像大小适应按钮大小,而按钮大小通过QGridLayout自动适应GUI大小或手动调整大小。
简单地创建按钮时,图标仅在中间加载:
const QString fileName = "Bitmaps/btn.png";
if( !QFile( fileName ).exists() )
{
qDebug() << "File not found: " << fileName;
}
const QPixmap pixmap = QPixmap( fileName );
m_btn = new QPushButton( QIcon( pixmap ), "", this );
通过手动设置调整大小时,图标不会缩放:
m_btn->setGeometry( QRect( 100, 100, 50, 50 ) );
要重新调整图标大小,我需要手动调用setIconSize()。我可以在instanciating小部件的resize事件中调用它。 但是处理边际仍然需要手动计算。
m_btn->setIconSize( QSize( ( m_btn->size().width() - 12 ),
( m_btn->size().height() - 12 ) ) );
但是,当我从Qt文档中得到一个基于样式表的布局时,称为&#34; The Box Model&#34;这也适用于QPushButton。
http://doc.qt.io/qt-4.8/stylesheet-customizing.html#box-model
所以我的问题是,如何配置按钮图标以填充&#34;内容&#34;区域(在上述文件中标记为灰色)。 可能我如何配置它,图标自动调整大小? 感谢您的帮助: - )