【Qt一键界面美化】qss使用与qss界面美化

qss界面美化,没接触过qss的朋友可以先查看css的相关知识在阅读代码,如果你不想那么麻烦只是希望能简单的对界面进行美化,可以直接使用代码,废话不多说,直接上效果。

 

  该qss文本对,按钮控件QPushButton,场景QGraphicsView,复选框QCheckBox,滚动条-垂直QScrollBar,滚动条-水平QScrollBar,时间戳控件QDateTimeEdit,输入框QLineEdit,文本label,表头QHeaderView,表格QTableView,都进行了文字色彩,背景色,边框圆滑度进行了调整与设置,代码如下     


/**********表头**********/
QHeaderView{
        border: none;
        border-bottom: 3px solid rgb(0, 160, 230);
        background: rgb(57, 58, 60);
        min-height: 30px;
        color : #EEEEEE
}
QHeaderView::section:horizontal {
        border: none;
        color: white;
        background: transparent;
        padding-left: 5px;
}
QHeaderView::section:horizontal:hover {
        background: rgb(85, 85, 85);
}
QHeaderView::section:horizontal:pressed {
        background: rgb(80, 80, 80);
}
QHeaderView::up-arrow {
        width: 13px;
        height: 11px;
        padding-right: 5px;
        subcontrol-position: center right;
}
QHeaderView::down-arrow {
        width: 13px;
        height: 11px;
        padding-right: 5px;
        subcontrol-position: center right;
}

/**********表格**********/
QTableView {
        border-radius: 4px;
        border: 1px solid rgb(45, 45, 45);
        background: rgb(57, 58, 60);
        gridline-color: #EEEEEE;
        color : #EEEEEE;
}

QTableView::item:selected {
        background: rgba(255, 255, 255, 40);
}


/**********滚动条-水平**********/
QScrollBar:horizontal {
        height: 20px;
        background: transparent;
        margin-top: 3px;
        margin-bottom: 3px;
}
QScrollBar::handle:horizontal {
        height: 20px;
        min-width: 30px;
        background: rgb(68, 69, 73);
        margin-left: 15px;
        margin-right: 15px;
}
QScrollBar::handle:horizontal:hover {
        background: rgb(80, 80, 80);
}
QScrollBar::sub-line:horizontal {
        width: 15px;
        background: transparent;
        image: url(:/Black/arrowLeft);
        subcontrol-position: left;
}
QScrollBar::add-line:horizontal {
        width: 15px;
        background: transparent;
        subcontrol-position: right;
}
QScrollBar::sub-line:horizontal:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-line:horizontal:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal {
        background: transparent;
}

/**********滚动条-垂直**********/
QScrollBar:vertical {
        width: 20px;
        background: transparent;
        margin-left: 3px;
        margin-right: 3px;
}
QScrollBar::handle:vertical {
        width: 20px;
        min-height: 30px;
        background: rgb(68, 69, 73);
        margin-top: 15px;
        margin-bottom: 15px;
}
QScrollBar::handle:vertical:hover {
        background: rgb(80, 80, 80);
}
QScrollBar::sub-line:vertical {
        height: 15px;
        background: transparent;
        subcontrol-position: top;
}
QScrollBar::add-line:vertical {
        height: 15px;
        background: transparent;
        subcontrol-position: bottom;
}
QScrollBar::sub-line:vertical:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-line:vertical:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
        background: transparent;
}

QScrollBar#verticalScrollBar:vertical {
        margin-top: 30px;
}


/**********复选框**********/
QCheckBox{
        spacing: 5px;
}
QCheckBox:enabled{
        color: rgb(175, 175, 175);
}
QCheckBox:enabled:hover{
        color: rgb(200, 200, 200);
}
QCheckBox:!enabled{
        color: rgb(155, 155, 155);
}
QCheckBox::indicator {
        width: 20px;
        height: 20px;
}

/**********输入框**********/
QLineEdit{
        border-radius: 4px;
        height: 25px;
        border: 1px solid rgb(100, 100, 100);
        background: rgb(72, 72, 73);
}
QLineEdit:enabled {
        color: rgb(175, 175, 175);
}
QLineEdit:enabled:hover, QLineEdit:enabled:focus {
        color: rgb(230, 230, 230);
}
QLineEdit:!enabled {
        color: rgb(155, 155, 155);
}



/**********按钮**********/
QPushButton{
        border-radius: 4px;
        border: none;
        width: 75px;
        height: 25px;
        background: rgb(68, 69, 73);
        color: #EEEEEE;
}
QPushButton:!enabled {
        background: rgb(100, 100, 100);
        color: rgb(200, 200, 200);
}
QPushButton:hover{
        background: rgb(85, 85, 85);
}
QPushButton:pressed{
        background: rgb(80, 80, 80);
}

/**********文字**********/
QLabel{
    color: #EEEEEE;
    border-radius: 4px;
}

/**********label显示背景**********/
QLabel#label_pic1{
    background-color: #515151;
}
QLabel#label_pic2{
    background-color: #515151;
}

/**********场景**********/
QGraphicsView{
    background: #2E2E2E;
    border: 1px solid #2E2E2E;
    border-radius: 4px;
}

/**********时间戳**********/
QDateTimeEdit{
    background: #515151;
    border: 1px solid rgb(100, 100, 100);
    border-radius: 4px;
    color: #EEEEEE;
}

   

  本qss代码不涉及指定id控件和url图片的部分,直接可用。大家也可以根据代码进行微调和添加所需的变化。

  使用方法如下新建一个.qss文件,把代码写入到文件中,把写好的qss文件放到你的工程目录文件夹下,并在你的qt工程里新建一个Resource文件,会自动创建一个文件夹,已经创建好Resource文件夹的可以跳过这一步

 添加后在文件夹中加入现有文件,把之前添加好的qss加入

  加入好后在可以需要添加的窗口中读取qss文件并用setStyleSheet函数插入

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QFile res_file("../jtqss.qss");
    if(res_file.open(QIODevice::ReadOnly))
    {
        a.setStyleSheet(res_file.readAll());
        qDebug() << "qss file load succes";
    }
    res_file.close();

    Widget w;

    QPalette pal(w.palette());
    pal.setColor(QPalette::Background, QColor(30, 30, 25));
    w.setAutoFillBackground(true);
    w.setPalette(pal);
    w.show();

    return a.exec();
}

   主要代码是

QFile res_file("../jtqss.qss");
    if(res_file.open(QIODevice::ReadOnly))
    {
        a.setStyleSheet(res_file.readAll());
        qDebug() << "qss file load succes";
    }
    res_file.close();

  还有一定要加上

    QPalette pal(w.palette());
    pal.setColor(QPalette::Background, QColor(30, 30, 25));
    w.setAutoFillBackground(true);
    w.setPalette(pal);

  这一段是设置窗口背景色的,如果不加上看对比图

什么都不加,即不加qss文件,也不设置界面背景色效果如下

  嗯,非常的原始 ,右上角的QchartsVeiw控件我还是已经用控件自带的设置主题函数设置过的了,没设置过的话更加是一片白。

  这篇博客也是我刚接触qss学习上的一个记录,对qss也没有特别深入的了解,相关博客也有很多但是大部分都需要会员积分,整合了网上比较多的文档发布一个比较初级的供大家参考,如果有什么不对和问题可以评论互动

  谢谢观看。

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Qt QSSQt Style Sheets)是一种界面样式定义文件,用于美化Qt应用程序的界面。它可以轻松地更改应用程序的外观,包括颜色、字体、边框等等。下面是一些关于Qt QSS界面美化文件的要点: 1. 语法:Qt QSS使用类似于CSS的语法,可以定义各种UI元素的样式。可以通过选择器、属性和值的组合来选择和修改UI元素。 2. 文件应用:可以将Qt QSS文件应用于整个应用程序、单个窗口或特定的UI控件。通过使用setStyleSheet()方法,可以将QSS文件加载到应用程序中。 3. 样式修改:Qt QSS文件可以修改各种UI元素的样式和外观。例如,可以更改按钮的颜色、边框和文本样式,也可以更改文本框的颜色和字体。 4. 状态修改:Qt QSS文件还可以根据控件的状态来修改其样式。例如,可以根据鼠标悬停、按下或禁用状态来修改按钮的样式。 5. 层叠样式:Qt QSS支持层叠样式,即可以为不同的控件定义不同的样式,并可以通过选择器的层次结构来覆盖或继承样式。 6. 预定义属性:Qt QSS提供了一些预定义属性,用于快速设置UI元素的样式。例如,可以使用"color"属性设置文本颜色,使用"font-family"属性设置字体。 7. 动态样式:可以在运行时动态地修改Qt QSS文件。通过重新加载或修改QSS文件,可以实现在无需重新编译应用程序的情况下更改界面样式。 总的来说,Qt QSS是一种功能强大的界面美化文件,能够轻松地自定义Qt应用程序的外观和样式。通过使用QSS,可以快速而灵活地修改UI元素的样式,增强应用程序的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值