#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
prepareUI();
prepareStyle();
}
MainWindow::~MainWindow()
{
}
void MainWindow::prepareUI()
{
this->setFixedSize(200,400);
QVBoxLayout *vlayout = new QVBoxLayout; //设置垂直布局
vlayout->setContentsMargins(20,0,20,0);
mpBgd = new QWidget();
mpBgd->setObjectName("bgd");
setCentralWidget(mpBgd);
mpBtn1 = new QPushButton();
mpBtn2 = new QPushButton();
mpBtn3 = new QPushButton();
mpBtn1->setFixedSize(128,128); //将三个按钮设置为图标大小
mpBtn2->setFixedSize(128,128);
mpBtn3->setFixedSize(128,128);
vlayout->addWidget(mpBtn1,Qt::AlignHCenter);
vlayout->addWidget(mpBtn2,Qt::AlignHCenter);
vlayout->addWidget(mpBtn3,Qt::AlignHCenter);
mpBgd->setLayout(vlayout);
mpBtn2->setFocus(); //按钮2设置为焦点停留状态
mpBtn3->setDisabled(true); //按钮3设置为无法点击状态
}
void MainWindow::prepareStyle()
{
setStyleSheet("QPushButton{border-image:url(./res/normal.png);padding:0px;border:none}"
"QPushButton:hover{border-image:url(./res/hover.png)}"
"QPushButton:pressed{border-image:url(./res/pressed.png)}"
"QPushButton:disabled{border-image:url(./res/disabled.png)}"
"QPushButton:focus{border-image:url(./res/focus.png)}"
"QPushButton:focus:hover{border-image:url(./res/hover.png)}"
"QPushButton:focus:pressed{border-image:url(./res/pressed.png)}"
);
//如果不加QPushButton:focus:hover和 focus:pressed 那么按钮出于焦点停留态后,鼠标悬停和点击将无反应
mpBgd->setStyleSheet("QWidget#bgd{background-color: cyan;border:none;}");
}