一、使用QT样式表设计部件外观

样式表使用文本描写叙述,能够使用QApplication::setStyleSheet()函数将其设置到整个应用程序上。也能够使用QWidget::setStyleSheet()函数将其设置到一个指定的部件上。

1、使用代码设置样式表

假设希望对指定部件设置背景色。能够加入例如以下代码:

//设置pushButton的背景为黄色

ui->pushButton->setStyleSheet("background:yellow");

//设置horizontalSlider的背景为蓝色

ui->horizontalSlider->setStyleSheet("background:blue");

......



假设希望对相同的部件都设置相同的背景色,能够在它们的父部件上设置样式表,代码例如以下:

setStyleSheet("QPushButton{background:yellow}QSlider{background:blue}");

採用这样的方式,再往主窗体上加入的全部QPushButton和QSlider部件的背景色都会改为这里指定的颜色。

2、在QT设计师界面设置样式表


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

假设须要设置同类部件为同一指定颜色。则在主界面上右击,选则“改变样式表”。加入代码:

QPushButton{

}

注意光标留在第一个大括号后面,然后点击“加入颜色”下拉框选择颜色。这样就能够设置同样控件指定背景色了。

二、使用调色板QPalette类设计部件外观

QPalette类基本的颜色角色例如以下:


//首先要调用setAutoFillBackground(true)来设置窗口自己主动填充背景
ui->pushButton->setAutoFillBackground(true);
//获取pushbutton的调色板
QPalette p = ui->pushButton->palette();
//设置button文本颜色为红色
p.setColor(QPalette::ButtonText, Qt::red);
//设置button背景色为绿色
p.setColor(QPalette:Active, QPalette::Button, Qt::green);
//改动后的调色板
ui->pushButton->setPalette(p);

//设置lineEdit不可用
ui->lineEdit->setDisabled(true);
QPalette p2 = ui->lineEdit->palette();
//设置lineEdit不可用时背景色为蓝色
p2.setColor(QPalette::Disabled, QPalette::Base, Qt::Blue);
ui->lineEdit->setPalette(p2);

提示:

对于不同的Qt控件,当我们用QPalette设置其背景/前景颜色时,须要指定不同的颜色角色參数。

比方:对于QTextEdit,设置其背景时要使用QPalette::Base ; 对于QWidget则使用QPalette::Window 。參数不匹配时。调色板效果是不会显示的。


最新文章

  1. 扩展HT for Web之HTML5表格组件的Renderer和Editor
  2. RO05 - 如何编写RemObjects SDK服务端 (Delphi Version)
  3. Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx
  4. java 通过zxing生成二维码
  5. myeclipse2015不能启动tomcat,提示: Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at local
  6. Vim键盘图与命令图解
  7. java各种排序实现
  8. css直接写出小三角
  9. Inno Setup 创建站点,创建虚拟目录
  10. Jetty:开发指导Handlers
  11. Sql sever 常用语句(续)
  12. 项目实战(连载):基于Angular2+Mongodb+Node技术实现的多用户博客系统教程(2)
  13. Android: Only the original thread that created a view hierarchy can touch its views 异常
  14. 一步一步从原理跟我学邮件收取及发送 3.telnet命令行发一封信
  15. 【Python】 SQLAlchemy的初步使用
  16. 使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目
  17. Redis学习笔记(3)-XShell连接CentOSMini,并安装Redis
  18. android:ems="10"是什么意思
  19. mongodb知识积累
  20. defer 的常用场景

热门文章

  1. WordPress主题开发:设置和获取浏览次数
  2. Javascript与Objective-C 字符串与数组的方法类比
  3. Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)
  4. Java调用DLL有多种方式,常用的方式有JNative、JNA、JNI等。
  5. IIS 7.0 SSL 部署指南
  6. B样条
  7. frp错误处理:login to server failed: authorization failed
  8. window.open 浏览器差异.
  9. C# MemCached分布式缓存
  10. 3D视频的播放