《Qt》part 8 QSS+按键菜单——界面美化3
2017-02-21 09:11
573 查看
《Qt》part 8 QSS+按键菜单——界面美化3
一、功能:
1、创建按键菜单;
2、QSS对界面进行美化;
二、效果:动图的效果如左边,静态的就没问题了:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/11/4291a50e8f7b2503eb3545fc54b453a0)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/11/4a2951325e65ef83e0d135ee3f70e932)
三、代码:
1、QSS_MeiHua1.h
2、QSS_MeiHua1.cpp
3、qss:
四:总结:
1、其中的qlineargradient是渐变函数:
.QWidget#widget{
background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.09, stop:0 #303030, stop:0.8 #696969, stop:1 #FFFFFF);
}
这其中x1-x2表示水平方向颜色的变化;y1-y2表示垂直方向颜色的变化。
0,1,1,1为向左渐变;
1,0,0,0为向右渐变。
通常,也可以用下面这种方式来表示线性渐变函数:
background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.09, stop:0 rgb(255,0,0), stop:0.8 rgb(255,255,0), stop:1 #(255,255,255));
2、
(1)线性渐变函数有个地方需要注意,按照上面的说法,这个是梯度渐变,方向由1->0,x1、x2与y1、y2同为0或1是没有渐变方向的,不知可否这样理解;
(2)其中的0-1指的是界面(包括各种按键、标签等)的比例,其中的y2=0.09表示的是垂直方向占据widget控件的9%。
(3)渐变的颜色难以调节控制,渐变有一个过程,如果渐变区过大,在边界区会有明显的颜色稀释,想要保证良好的颜色均匀性,就要调节stop函数的值,也是一个比例值,上面的stop 0处表示开始的颜色,stop 0.8 表示y在0-0.09的0-80%位置上的颜色,最后stop 1表示y在0-0.09的80%-100%位置上的一个渐变,上面函数给的为#FFFFFF白色,所以在边界处可以看到一个明显的颜色缓冲带(颜色稍微浅一些)。
3、QSS中的主要语法含义:
opacity——透明度;
backgroud-color——rgb(0,0,0,0),最后一个参数是透明度,0表示全透明;
border-radius——圆角边框;
padding——填充;
border——边界;
qlineargradient——线性渐变;
qradialgradient——辐射渐变;
qconicalgradient——角度渐变。
一、功能:
1、创建按键菜单;
2、QSS对界面进行美化;
二、效果:动图的效果如左边,静态的就没问题了:
三、代码:
1、QSS_MeiHua1.h
#ifndef QSS_MEIHUA1_H #define QSS_MEIHUA1_H #include <QtWidgets/QMainWindow> #include <QtWidgets/QLayout> #include "ui_qss_meihua1.h" //#pragma execution_character_set("utf-8") class QSS_MeiHua1 : public QMainWindow { Q_OBJECT public: QSS_MeiHua1(QWidget *parent = 0); ~QSS_MeiHua1(); public: void InitWindows(); void on_Btn_Menu_clicked(); private slots: void close(); private: Ui::QSS_MeiHua1Class ui; }; #endif // QSS_MEIHUA1_H
2、QSS_MeiHua1.cpp
#include "qss_meihua1.h" QSS_MeiHua1::QSS_MeiHua1(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); on_Btn_Menu_clicked(); InitWindows(); } QSS_MeiHua1::~QSS_MeiHua1() { } void QSS_MeiHua1::InitWindows() { //使用Style Sheet //隐藏窗口的标题栏 this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint ); //关闭窗口按键——连接信号槽 connect( ui.Btn_close, SIGNAL(clicked()), this, SLOT(close())); } void QSS_MeiHua1::on_Btn_Menu_clicked() { QMenu *menu = new QMenu(); QAction * menu_new = new QAction(menu); QAction * menu_open = new QAction(menu); QAction * menu_close = new QAction(menu); menu_new->setText(QStringLiteral("登陆")); menu_open->setText(QStringLiteral("注册")); menu_close->setText(QStringLiteral("注销")); menu->addAction(menu_new); menu->addAction(menu_open); menu->addAction(menu_close); ui.Btn_Menu->setMenu(menu); } void QSS_MeiHua1::close() { QApplication* app; app->quit(); }
3、qss:
/*QMainWindow,QDialog{ background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0.09, stop: 0 #1B2534, stop: 0.4 #010101, stop: 0.5 #000101, stop: 1.0 #1F2B3C); } */ .QWidget#widget{ background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.09, stop:0 #303030, stop:0.8 #696969, stop:1 #FFFFFF); /*background-position: 30% 20%;*/ } .QPushButton#Btn_close, .QPushButton#Btn_Menu{ border-radius:0px; color: #F0F0F0; background-color:rgba(0,0,0,0); border-style:none; } .QPushButton#Btn_close:hover{ background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.2, stop:0 rgba(238, 0, 0, 128), stop:1 rgba(238, 44, 44, 255)); } .QPushButton#Btn_Menu:hover{ background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(25, 134, 199, 0), stop:1 #636363); } .QPushButton#Btn_Menu:menu-indicator{ image: none; } .QMenu{ background-color:white; padding: 1px; } .QMenu::item{ background-color:transparent; } .QMenu::item:selected{ background-color:rgb(234, 243, 253); color: black; } .QLineEdit#lineEdit, .QLineEdit#lineEdit_2{ border: 1px solid #B8B8B8; border-radius: 7px; padding: 3px; background: #888888;/*pink*/ selection-background-color: #454648; } .QLineEdit#lineEdit, .QLineEdit#lineEdit_2{ lineedit-password-character: 9679; } .QLabel#label, .QLabel#label_2{ font-weight:bold; /*font-size:15px; */ font: 75 10pt "楷体"; }
四:总结:
1、其中的qlineargradient是渐变函数:
.QWidget#widget{
background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.09, stop:0 #303030, stop:0.8 #696969, stop:1 #FFFFFF);
}
这其中x1-x2表示水平方向颜色的变化;y1-y2表示垂直方向颜色的变化。
0,1,1,1为向左渐变;
1,0,0,0为向右渐变。
通常,也可以用下面这种方式来表示线性渐变函数:
background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.09, stop:0 rgb(255,0,0), stop:0.8 rgb(255,255,0), stop:1 #(255,255,255));
2、
(1)线性渐变函数有个地方需要注意,按照上面的说法,这个是梯度渐变,方向由1->0,x1、x2与y1、y2同为0或1是没有渐变方向的,不知可否这样理解;
(2)其中的0-1指的是界面(包括各种按键、标签等)的比例,其中的y2=0.09表示的是垂直方向占据widget控件的9%。
(3)渐变的颜色难以调节控制,渐变有一个过程,如果渐变区过大,在边界区会有明显的颜色稀释,想要保证良好的颜色均匀性,就要调节stop函数的值,也是一个比例值,上面的stop 0处表示开始的颜色,stop 0.8 表示y在0-0.09的0-80%位置上的颜色,最后stop 1表示y在0-0.09的80%-100%位置上的一个渐变,上面函数给的为#FFFFFF白色,所以在边界处可以看到一个明显的颜色缓冲带(颜色稍微浅一些)。
3、QSS中的主要语法含义:
opacity——透明度;
backgroud-color——rgb(0,0,0,0),最后一个参数是透明度,0表示全透明;
border-radius——圆角边框;
padding——填充;
border——边界;
qlineargradient——线性渐变;
qradialgradient——辐射渐变;
qconicalgradient——角度渐变。
相关文章推荐
- 《Qt》part 6 QSS Qt样式表——界面美化1
- 《Qt》part 7 QSS参考样式表——界面美化2
- Qt界面美化 QSS
- Qt界面美化 QSS
- Qt之界面美化输入框(使用QSS确实非同凡响)
- Qt界面美化之qss应用
- Qt界面美化 QSS
- QT界面美化
- Qt] 界面美化
- Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面
- Qt界面美化1
- QSS界面美化5
- QT 界面美化之 QStyle 应用
- QT 界面美化
- Qt 界面美化
- Qt界面的个性设置-QSS
- Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面
- 学习记录-Qt创建按键菜单
- Qt界面美化2
- QSS界面美化6