当前位置:  开发笔记 > 前端 > 正文

如何设置组合框或双旋转框等小工具的背景颜色?

如何解决《如何设置组合框或双旋转框等小工具的背景颜色?》经验,为你挑选了4个好方法。

我试图设置双旋转框的背景颜色,我不知道我应该使用什么功能.

我看到一些函数叫做SetBackgroundRole接受a Qt::ColorRole,但我不知道如何使用这个.

请让我知道,改变一个QComboBox或多个背景颜色的简单方法是QDoubleSpinBox什么?



1> Caleb Huitt ..:

fhe通常是正确的,但不考虑在调色板中使用不同背景角色的小部件(如旋转框和按钮/组合框).更通用的解决方案是这样的:

QPalette pal = widget.palette();
pal.setColor(widget.backgroundRole(), Qt::blue);
widget.setPalette(pal);

或者,您可以查看各种调色板角色的描述并找出所需的调色板角色,然后将其应用于包含您想要更改的其他调色板的小部件.调色板更改应传播到子窗口小部件.



2> Jérôme..:

使用a QPalette不能保证适用于所有样式,因为样式作者受到不同平台指南和本机主题引擎的限制.

为了确保您的背景颜色正确,我建议使用Qt样式表.这是我改变背景颜色的方法QComboBox:

myComboBox->setStyleSheet("QComboBox { background-color: blue; }");

我没有专门尝试过QSpinBox,但我猜它会起作用!


使用样式表设置背景颜色不是正确的方法,除非您愿意在QComboBox中设置其他子控件的样式(即下拉和向下箭头).请参阅Qt文档中的注释:"对于复杂的小部件,如QComboBox和QScrollBar,如果自定义了一个属性或子控件,则还必须自定义所有其他属性或子控件." 链接:http://doc.trolltech.com/4.5/stylesheet-customizing.html

3> Corwin Joy..:

实际上,如果你在QComboBox的情况下查看QPalette的Qt文档,那么后台角色可能不是你想要的.你想要的是:

QPalette :: Base 主要用作文本输入窗口小部件的背景颜色,但也可用于其他绘制 - 例如组合框下拉列表和工具栏句柄的背景.它通常是白色或其他浅色.

所以这里是我用来设置我正在使用的组合框的背景颜色的代码,以匹配它所在的小部件的颜色:

QPalette pal = myComboBox->palette();
pal.setColor(QPalette::Base, pal.color(QPalette::Window));
myComboBox->setPalette(pal);



4> shake..:

显然,在Qt 4.1及更高版本中,您需要设置this->setAutoFillBackground( true );调色板以应用背景颜色.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有