1.使用系统自带api
ui->pushButton->setIconSize(QSize(32,32));
ui->pushButton->setIcon(QIcon(":/images/Setting.png"));
ui->pushButton->setText(QString::fromLocal8Bit("系统设置"));
ui->pushButton->setStyleSheet("QPushButton{border:1px solid blue;background:white;}"
"QPushButton:hover{border:0px;background:blue;}"
"QPushButton:pressed{border:0px;background:red;}");
无法设置icon和文字之间的距离。
2.如果想让icon显示在文字上方可使用QToolButton
ui->toolButton->setIconSize(QSize(32,32));
ui->toolButton->setIcon(QIcon(":/images/Setting.png"));
ui->toolButton->setText(QString::fromLocal8Bit("系统设置"));
ui->toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
3.在pushbutton上面使用label进行布局
QLabel *iconLabel = new QLabel;
QLabel *textLabel = new QLabel;
iconLabel->setFixedSize(32,32);
iconLabel->setStyleSheet("border:1px solid red;");
textLabel->setStyleSheet("border:1px solid red;");
iconLabel->setPixmap(QPixmap(":/images/Setting.png"));
textLabel->setText(QString::fromLocal8Bit("系统设置"));
textLabel->setFixedWidth(60);
QHBoxLayout *myLayout = new QHBoxLayout();
myLayout->addSpacing(10);
myLayout->addWidget(iconLabel);
myLayout->addSpacing(30);
myLayout->addWidget(textLabel);
myLayout->addStretch();
ui->pushButton_2->setLayout(myLayout);
ui->pushButton_2->setStyleSheet("QPushButton{border:1px solid blue;background:white;}"
"QPushButton:hover{border:0px;background:blue;}"
"QPushButton:pressed{border:0px;background:red;}");
4.使用图片,设置stylesheet即可
以上三种方法,需要设置,比较麻烦,最好还是找UI设计按钮图片,这样软件的适配性也比较好。