1、代码方式设置鼠标滑过按钮更改Text文本颜色
my_pbtn_ = new QPushButton;
my_pbtn_->setStyleSheet("QPushButton:hover{color:red;}"
"QPushButton:pressed{color:red;}"
"QPushButton{color:black; background-color:transparent;border:none;}");
2、代码方式设置鼠标滑过按钮更改按钮样式
my_pbtn_ = new QPushButton;
my_pbtn_->setStyleSheet("QPushButton:hover{background-color:rgba(0,0,0,10%);border:1px solid rgb(196,196,188);}"
"QPushButton:pressed{background-color:rgba(0,0,0,20%);border:1px solid rgb(196,196,188);}"
"QPushButton{background-color:transparent;border:1px solid rgb(196,196,188);}");
- 对于ui新建的按钮,若出现鼠标按下后保持,不回弹的问题,可以在ui中选择button并取消勾选按钮的checkable和autoExclusive这两个属性。即可修改为鼠标滑过、按下按钮均改变颜色,离开之后,按钮保持弹起,恢复原状。
3、设置按钮、label风格
- 设置图标
// 按钮设置图标
ui->my_pbtn->setIcon(QIcon(":/imgs/myBtn.png"));
ui->my_pbtn->setIconSize(QSize(80,80));//设置图标大小
// label设置图标
my_lab_ = new QLabel();//新建label
QPixmap my_pix_map;
my_pix_map.load(":/imgs/mylab.png"); //设置QPixmap
my_pix_map.scaled(50,50,Qt::KeepAspectRatio,Qt::SmoothTransformation);//设置大小
ui->my_lab_->setPixmap(my_pix_map); //设置图标
- 设置样式
// 设置按钮风格
my_pbtn_->setFixedSize(QSize(80,80));//设置按钮大小
my_pbtn_->setStyleSheet("QPushButton:hover{background-color:rgba(0,0,0,10%);border:1px solid rgb(196,196,188);}"
"QPushButton:pressed{background-color:rgba(0,0,0,20%);border:1px solid rgb(196,196,188);}"
"QPushButton{background-color:transparent;border:1px solid rgb(196,196,188);}");//设置按钮的鼠标滑过、按下和默认状态分别显示的颜色,以及这三个状态下按钮边框宽度和颜色
// 设置label风格
my_lab_->setFixedSize(QSize(30,30));
my_lab_->setStyleSheet("background:transparent;border-top:none;border-bottom:1px solid rgb(196,196,188);");//设置label的背景透明,上边框和右边框的边框宽度和颜色,也可直接设置全部边框宽度和颜色如:border:1px solid rgb(196,196,188)。
// 按钮设置显示文字
ui->m_user_head_pbtn_->setText("ok");//设置文字内容
QFont f;
f.setPixelSize(10);
ui->m_user_head_pbtn_->setFont(f);//设置字体大小
// label设置显示文字
ui->my_lab_->setText(user_name);
QFont f;
f.setPixelSize(10);
my_lab_->setFont(f);