其他分享
首页 > 其他分享> > Qt——界面外观

Qt——界面外观

作者:互联网


Qt风格


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

#include <QStyleFactory>

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

windows
在这里插入图片描述
fusion
在这里插入图片描述
windowsxp
windowsxp


调色板


激活颜色组非激活颜色组失效颜色组QPalette类ActiveInactiveDisabled

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

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

效果和输出
在这里插入图片描述


Qt样式表


单一简单控件

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

实现方式一
//设置某一个部件
ui->pushButton->setStyleSheet("background:yellow");

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

第二行代码效果如下
在这里插入图片描述

实现方式二

在设计界面下,鼠标右击,使用样式表
在这里插入图片描述

样式表的规则

选择器声明属性QPushButton{color:red}QPushButton{color:red}colorred
特殊情况

有子控件的复杂控件

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这个控件有冲突,就遵循特殊的选择器优先,则会变为黑色

自定义部件外观

使用样式表时,所有部件的样式组成
在这里插入图片描述

换肤

文件.qss

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

标签:控件,外观,界面,Qt,color,setStyleSheet,QPushButton,选择器,red
来源: https://blog.csdn.net/waterMelon_eater/article/details/87978417