QT设置按钮边界样式
本学习添加三个按钮来做研究:
QVBoxLayout* vbox = new QVBoxLayout();
QWidget* w = new QWidget(this);
this->setCentralWidget(w);
m_btn = new QPushButton("btn1",this);
m_btn2 = new QPushButton("btn2",this);
m_btn3 = new QPushButton("btn3",this);
m_btn->setFixedHeight(100);
m_btn2->setFixedHeight(100);
m_btn3->setFixedHeight(100);
设置背景
// this->setWindowOpacity(0.5); //全透明,包含控件
// this->setAttribute(Qt::WA_TranslucentBackground, true); //全透明不包含控件
this->setObjectName(“yjd”);
this->setStyleSheet(“QMainWindow#yjd{background-color:rgb(0,200,200)}”); //设置不继承给子类的背景颜色
//none : 无边框。与任何指定的border-width值无关 //hidden : 隐藏边框。IE不支持 //dotted : 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为点线。否则为实线(常用) //dashed : 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为虚线。否则为实线(常用) //solid : 实线边框(常用) //double : 双线边框。两条单线与其间隔的和等于指定的border-width值 //groove : 根据border-color的值画3D凹槽 //ridge : 根据border-color的值画菱形边框 //inset : 根据border-color的值画3D凹边 //outset : 根据border-color的值画3D凸边
m_btn->setStyleSheet("QPushButton{background-color:black;"
"color:white;" //字体颜色
"border-radius:50px}"); //边界弧度
m_btn2->setStyleSheet("QPushButton{background-color:rgb(0,0,200);"
"border:10px solid gray;}"); //边界宽度,样式,颜色
m_btn3->setStyleSheet("QPushButton{background-color:yellow;"
"border-style:dashed;" //设置样式。注意:此类方式设置,最好带上此项设置,否则其它关于边界的设置可能无效。
"border-left-style:solid;border-right-style:outset;border-top-style:none;border-bottom-style:dotted;"//分别设置四个方向的样式。
"border-color:white;" //设置总体的边界颜色 //分别设置四个方向的颜色 border-left-color:red;border-right-color:black;border-top-color:rgb(122,255,23);border-bottom-color:green;
"border-width:5px;}"); //设置总体的边界宽度 //分别设置四个方向的边界宽度 border-left-width:5px;border-right-width:5px;border-top-width:15px;border-bottom-width:10px;
vbox->addWidget(m_btn);
vbox->addWidget(m_btn2);
vbox->addWidget(m_btn3);
w->setLayout(vbox);
注意当只设置一边、两边、三边时,如果设置无效,那么一定要设置上边界样式才能是其他边界样式生效:
border-top-style:solid;
border-top-color:red;
border-top-width:5px;
或:
border-top:5px solid red;
如果刚好就不设置上边界,可以使用如下写法:
border-top-style:none;
border-top-color:red;
border-top-width:5px;
或
border-top:0px solid red;
设置圆角:
border-top-left-radius: 25px;
border-top-right-radius: 25px;
border-bottom-left-radius: 25px;
border-bottom-right-radius: 25px;