如何把一个Button的图标设置为图片加文字呢?
我们的思路是把图片文字分别放在QLabel上,并设置布局,再把布局嵌入到QPushbutton。
首先,我们在QTdesigner上放置一个Qpushbutton,按钮名btnLive,并设置其样式表:
QPushButton
{
background-color:#1E90FF;//背景蓝色
border-radius: 10px; //圆角弧度
}
效果如图所示:
然后我们在构造函数中加入如下代码:
//new两个Label,一个放置图片,一个放置文本
QLabel* labLiveIMG = new QLabel();
QLabel* labLiveInfo = new QLabel();
//加载图片到Label
labLiveIMG->setPixmap(QPixmap(":/Images/mainwin/home_video_btn.png"));
//设置描述按钮功能的文字
QString strLiveInfo = QObject::tr("live broadcast");
labLiveInfo->setText(strLiveInfo);
//设置文字的字样、字体、颜色等样式及文本框宽度
labLiveInfo->setStyleSheet("font: 20px 'Microsoft YaHei';color:white;");
labLiveInfo->setFixedWidth(200);
//新建布局,把元素一一添加到布局,再把布局设置到按钮上
QHBoxLayout* LayoutLiveInfo = new QHBoxLayout();
LayoutLiveInfo->addSpacing(2);
LayoutLiveInfo->addWidget(labLiveIMG);
LayoutLiveInfo->addSpacing(10);
LayoutLiveInfo->addWidget(labLiveInfo);
LayoutLiveInfo->addStretch();
_ui.btnLive->setLayout(LayoutLiveInfo);
其中addSpacing可以设置左边距,右边距及图片与文字的间隔。
另外要把图片加载到资源文件qrc中去,否则可能不会显示
最终我们就大功告成啦~效果: