Qt——界面外观


Qt风格


使用setStyle()来调用指定的风格

  • 默认可用:windows、fusion
  • 特定平台有效:windowsxp、windowsvista、gtk、macintosh
    呈现的效果如下面图是一样的
#include 

QApplication a(argc, argv);
a.setStyle(QStyleFactory::create("fusion"));

windows
Qt——界面外观_第1张图片
fusion
Qt——界面外观_第2张图片
windowsxp
Qt——界面外观_第3张图片


调色板


  • 还要学习补充如何设置不同颜色组的颜色
激活颜色组
非激活颜色组
失效颜色组
QPalette类
Active
Inactive
Disabled

下图为使用函数QApplication::palette()查看调色板
在这里插入图片描述
其中的常量意思如下表(带Text前景色Qt——界面外观_第4张图片
代码实践(不足:针对一个空间将所有组颜色设为一样

    QPalette palette = this->palette(); 		//获得调色板
    qDebug() << palette;
    
    QColor color = 0xff000110;					//可用内置颜色如 Qt::darkGray;	
    palette.setColor(QPalette::Window,color);	//改颜色
    
    this->setPalette(palette);					//设置更改的调色板
    qDebug() << palette;

效果和输出
Qt——界面外观_第5张图片


Qt样式表


单一简单控件

下面两种方法不能同时存在,否则有一方会显示不出来

实现方式一
  • 使用函数QApplication::setStyleSheet()可以设置到整个应用程序
  • 使用函数QWidget::setStyleSheet()可以设置到某一个指定部件
//设置某一个部件
ui->pushButton->setStyleSheet("background:yellow");

//如果一个窗口下某一类都是同样设置
setStyleSheet("QPushButton{background:blue} QLCDNumber{background:black}");

第二行代码效果如下
Qt——界面外观_第6张图片

实现方式二

在设计界面下,鼠标右击,使用样式表
Qt——界面外观_第7张图片

样式表的规则

选择器
声明
属性
QPushButton{color:red}
QPushButton
{color:red}
color
red
特殊情况
  • 多个选择器&同一声明:逗号隔开
    QPushButton, QLineEdit, QComboBox{color:red}
  • 一个选择器&多个声明:分号隔开
    QPushButton{color:red, background-color:white}
  • 选择器各种类型
    Qt——界面外观_第8张图片

有子控件的复杂控件

QComboBox的下拉控件

QComboBox::drop-down{
	color:red;
}

伪状态

用来限制样式显示的状态,用

setStyleSheet("QPushButton:hover{color:blue}");

则此时只有鼠标悬停在按钮上才会变色
在这里插入图片描述
拓展

  1. QPushButton:!hover{color:blue}叹号表示
  2. QPushButton:hover:checked{color:blue}冒号表示
  3. QPushButton:hover,QPushButton:checked{color:blue}: 逗号表示

冲突怎么办

QTextEdit#textEdit_dragIn{ color:black }
QTextEdit{ color:red }

此时textEdit_dragIn这个控件有冲突,就遵循特殊的选择器优先,则会变为黑色

自定义部件外观

使用样式表时,所有部件的样式组成
Qt——界面外观_第9张图片

换肤

文件.qss

QFile file(":/*.qss");
file.open(QFile:ReadOnly);
QString styleSheet = QString(file.readAll());
dlg->setStyleSheet(styleSheet);

你可能感兴趣的:(Qt学习入门,Qt,入门学习,界面外观,样式表)