zoukankan      html  css  js  c++  java
  • Qt样式表

    1  简介

    参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=27

    样式表的作用就是为了让我们的控件变得好看。给窗口设置风格、颜色、图片等。

    2  使用方式

    使用控件的setStyleSheet方法来进行样式的设置。

    用法:void setStyleSheet(const QString &styleSheet)

    其中styleSheet是符合某种规范的字符串,用法和HTML CSS差不多,

    可以通过查看帮助文档中的例子来学习。

    3  举例说明

    1)以QLabel为例进行说明

    设置字体颜色、背景色、以及背景图片:

    1     ui->label->setStyleSheet("QLabel{color:red;"  //前景色
    2         "background-color:black;"  //背景色
    3         "background-image :url(:/new/prefix1/superman.jpg);"  //背景图片,自动伸缩
    4         "}");

    把窗口最大化,效果如下:

    可以看出,背景图片的大小不会跟着窗口的大小自动伸缩,这里我们就要用到盒子模型才行。

    2)盒子模型

    补充说明一下,什么是盒子模型,官方说明如下:

    大致意思是:我们使用样式表时,每一个控件被当作一个盒子,只不过我们看不到,模型如下:

    其中,margin、border-width、padding默认是设置为0的。如果我们要让背景随着窗口的大小自动伸缩,我们需要使用“border-image”,我们更改代码测试一下:

    1     ui->label->setStyleSheet("QLabel{color:red;"  //前景色
    2         "background-color:black;"  //背景色
    3         "border-image:url(:/new/prefix1/superman.jpg);"  //背景图片,自动伸缩
    4         "}");

    也把窗口最大化,可以看出,背景图片随着窗口可以进行自动伸缩。

    盒子模型的其它用法,我现在不熟悉,就不说明了。

    3)伪状态 Pseudo-States

    简单的说,伪状态就是基于控件不同的状态我们可以设置不同的样式,以按钮为例进行说明,例如:我们将鼠标放在按钮上时可以显示一个背景,点击按钮可以显示一个背景,释放按钮可以显示一个背景。

    下面就简单说说代码的实现:

    1     ui->pushButton->setStyleSheet("QPushButton{ border-image:url(:/new/prefix1/close.png);}"
    2                                   "QPushButton:hover{ border-image:url(:/new/prefix1/status.png);}"
    3                                   "QPushButton:pressed{ border-image:url(:/new/prefix1/open.png);}"
    4                                   );

    上面的代码的运行结果:

     每种控件的样式表都不相同,很多我也不知道,需要用到的时候去查帮助文档即可。

  • 相关阅读:
    服务器被黑

    ZXW说
    抽象类
    URL参数加密解密过程
    SqlServer 跨服务器 DML
    发布
    C#操作XML小结
    定时指执程序
    SQL语句判断数据库、表、字段是否存在
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/13185485.html
Copyright © 2011-2022 走看看