QT QSS设置按钮边界样式

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;

你可能感兴趣的:(QT,qt)