qt万能样式表模板


在项目开发过程中,不可缺少的一部分就是界面的美化,软件做的怎么样,界面风格样式很重要。在qt中通过样式表,*.qss文件加载到程序中美化界面

一、效果(动态图)

在这里插入图片描述

二、样式代码

代码如下:

/*灰色*/
QWidget
{
    background-color: rgb(240,240,240); /*背景色*/
    color: black;  /*字体颜色*/
}
/*按钮正常状态*/
QPushButton
{
    background-color:rgba(198,198,198);/*背景色*/
    min-height:30px; /*最小高度*/
    min-width:180px; /*最小宽度*/
    border-style:solid;/*边框样式 solid实线 none无边框 inset/outset 3D边框*/
    border-width:4px; /*边框宽度像素*/
    border-radius:10px;/*边框圆角半径像素*/
    border-color:rgba(205,205,205);/*边框颜色*/
    font-size:12pt;/*字体 字体大小*/
    color: black;/*字体颜色*/
    padding:6px; /*填衬*/
}
/*鼠标按下状态*/
QPushButton:pressed
{
    background-color:rgba(198,198,220);/*背景色*/
    border-color:rgba(205,205,205);/*边框颜色*/
    border-style:solid;/*边框样式 solid实线 none无边框 inset/outset 3D边框*/
    color: black;/*字体颜色*/
}
/*鼠标悬停状态*/
QPushButton:hover
{
    background-color:rgba(198,198,190);/*背景色*/
    border-color:rgba(205,205,205);/*边框颜色*/
    color: black;/*字体颜色*/
}
QLineEdit
{
    background-color:rgb(240,240,240);/*背景色*/
    min-height:30px; /*最小高度*/
    min-width:180px; /*最小宽度*/
    border-style:solid;/*边框样式 solid实线 none无边框 inset/outset 3D边框*/
    border-width:4px; /*边框宽度像素*/
    border-radius:10px;/*边框圆角半径像素*/
    border-color:rgba(205,205,205);/*边框颜色*/
    font-size:12pt;/*字体 字体大小*/
    color: black;/*字体颜色*/
    padding:6px;/*填衬*/
}
QCheckBox
{
    color:black;/*字体颜色*/
    background-color:rgb(240,240,240);/*背景色*/
}
QComboBox
{
    background-color:rgb(240,240,240);
    color: black;/*字体颜色*/
    border-style:solid;/*边框样式 solid实线 none无边框 inset/outset 3D边框*/
    border-width:4px;/*边框宽度像素*/
    border-radius:10px;/*边框圆角半径像素*/
    border-color:rgba(205,205,205);/*边框颜色*/
    min-height:35px; /*最小高度*/
    font-size:12pt;
}
/*向下的三角形箭头样式*/
QComboBox::drop-down
{
     width:20px;
     border:none;
     background:transparent;
 }
/*向下的三角形箭头*/
QComboBox::down-arrow
{
    image:url(:/image/array_down.png);
}
/*下拉后的整个下拉窗体*/
QComboBox QAbstractItemView
{
 background-color: rgb(240,240,240); /*背景色*/
    color: black;/*字体颜色*/
outline:none;
}
/*下拉框下面的item*/
QComboBox QAbstractItemView::item
{
    height:30px;
    color: black;/*字体颜色*/
}
/*下拉框item选中*/
QComboBox QAbstractItemView::item:selected
{
    background-color: rgb(240,240,240); /*背景色*/
    color: black;/*字体颜色*/
}
QLabel
{
    color: black;/*字体颜色*/
font-size:12pt;
border:none;/*边框样式*/
}
QTabWidget
{
    background-color: rgb(240,240,240); /*背景色*/
    color: black;/*字体颜色*/
}
QTabBar::tab
{
    background-color: rgb(240,240,240); /*背景色*/
    color: black;/*字体颜色*/
    font-size:12pt;/*字体大小*/
    height:30px; /*高度*/
    min-width:100px;/*宽度*/
    border-top-left-radius:4px;/*左上边框圆角半径像素*/
    border-top-right-radius:4px;/*右上边框圆角半径像素*/
    margin-right: 5px;/*右边距  右外边距*/
    padding-left:5px;/*左填充--左内边距*/
    padding-right:5px;/*右填充--右内边距*/
}
QTabBar::tab:hover
{
    background-color: rgb(198,198,208); /*背景色*/
}
QTabBar::tab:selected
{
    background-color: rgb(198,198,198); /*背景色*/
}
QTableView,QTableWidget{
    background-color: rgb(240,240,240); /*背景色*/
    color: black;/*字体颜色*/
    selection-background-color:rgba(192,221,244);/*背景色*/;/*点击选中颜色*/
    border:1px solid #E0DDDC;/*边框为1像素,灰色*/
    gridline-color:lightgray;/*这个是表格的格子线的颜色,为亮灰*/
    font:bold 12pt;/*字体 字体大小*/
}
/*表格表头样式*/
QHeaderView::section{
    background-color:rgb(240,240,240); /*背景色*/
    border:0px solid #E0DDDC;/*先把边框宽度设为0,即隐藏所有表头边框*/
    border-bottom:1px solid #E0DDDC;/*然后只显示下边框,因为上边框和左右边框是整个Table的边框,都显示会有2px的边框宽度*/
    min-height:30px;;/*表头高度*/
    font-size:12pt;/*字体大小*/
}
QTreeWidget,QTreeView
{
    background-color: rgb(240,240,240); /*背景色*/
    color: rgb(79,129,168);/*字体颜色*/
    selection-background-color:rgba(5,23,200);/*点击选中颜色*/
    font-size:12pt;/*字体大小*/
}
/*收起状态*/
QTreeWidget::branch:has-children:!has-siblings:closed,
QTreeWidget::branch:closed:has-children:has-siblings {
    border-image: none;
    image: url(:/image/add-line_horizontal.png);
}
/*展开状态*/
QTreeWidget::branch:open:has-children:!has-siblings,
QTreeWidget::branch:open:has-children:has-siblings  {
    border-image: none;
    image: url(:/image/array_down.png);
}
/*收起状态*/
QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
    border-image: none;
    image: url(:/image/add-line_horizontal.png);
}
/*展开状态*/
QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings  {
    border-image: none;
    image: url(:/image/array_down.png);
}

三,加载单个样式表

QFile file(":/user.qss");
file.open(QFile::ReadOnly);
if (file.isOpen())
{
    this->setStyleSheet(file.readAll());
}
file.close();

四,换皮肤–切换样式

class CommonStyle
{
public:
    /**
    * @brief	: 添加样式表
    * @params	: strStyle [in] 路径
    */
    static void setStyle(const QString& strStyle)
    {
        QFile qss(strStyle);
        qss.open(QFile::ReadOnly);
        qApp->setStyleSheet(qss.readAll());
        qss.close();
    }
};

在QComboBox的槽函数中实现切换

void StyleWidget::on_m_typeComboBox_currentIndexChanged(int index)
{
    if(index == 0)
    {
        CommonStyle::setStyle(":/user.qss");
    }
    else if(index ==1)
    {
        CommonStyle::setStyle(":/user2.qss");
    }
    else if(index ==2)
    {
        CommonStyle::setStyle(":/user3.qss");
    }
    else if(index ==3)
    {
        CommonStyle::setStyle(":/user4.qss");
    }
    else if(index ==4)
    {
        CommonStyle::setStyle(":/user5.qss");
    }
    else if(index ==5)
    {
        CommonStyle::setStyle(":/user6.qss");
    }
}
  • 18
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
对于Qt中的样式表,你可以使用QStyleSheet来实现界面的美化。根据引用[1]所述,QT精美样式表包含了按钮、编辑框、进度条、下拉框、表格等常用控件的美化样式,可以一套搞定QT界面。 如果你想使用Qt样式表来美化Testbrows(可能是你自定义的控件),你可以通过设置QWidget的样式表来实现。首先,你需要为Testbrows指定一个样式类名,例如"test-brows"。然后,你可以通过在样式表中使用这个类名来定义Testbrows的外观。 例如,你可以创建一个样式表字符串,如下所示: ```cpp QString styleSheet = ".test-brows { background-color: yellow; }"; ``` 这个样式表将会将Testbrows的背景颜色设置为黄色。 然后,你可以将这个样式表应用到Testbrows上,例如: ```cpp testBrows->setStyleSheet(styleSheet); ``` 这样,Testbrows就会显示出你定义的样式。 需要注意的是,如果你想美化Testbrows内部的子控件,可以使用":"选择器来指定子控件的外观。例如,为按钮指定样式,可以这样写: ```cpp QString styleSheet = ".test-brows QPushButton { color: red; }"; ``` 这个样式表将会将Testbrows内部的所有QPushButton的文字颜色设置为红色。 总结起来,你可以按照以下步骤来为Testbrows应用样式表: 1. 为Testbrows指定一个样式类名,例如"test-brows"。 2. 创建一个样式表字符串,定义Testbrows及其子控件的外观。 3. 将样式表应用到Testbrows上。 这样,你就可以通过样式表来美化Testbrows的外观了。希望这个回答对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘客-追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值