qss设置qcheckbox的问题
qss是在窗体中 右键-->改变样式表 中添加的
问题1:为什么新项目的窗口背景是默认是黑色的?
问题2:
将窗口背景设置为浅灰后,拖checkbox到窗体上,设计下显示正常(黑色文字,白色框),但是
预览或运行与设计显示不一样(复选框内变成黑色,文字变为白色,此时点选“√”为白色,能看到)?
qdialog{background-color:rgb(243,243,243);}
问题3:
将checkbox设置为绿色,设计下绿色字,仍然白色框,正常?
预览或运行与设计显示不一样(复选框内变成黑色,文字为绿色,此时点选“√”为绿色,能看到)?
qdialog{background-color:rgb(243,243,243);}
qcheckbox{color:rgb(0,255,0);}
问题4:
将框内设置为白色,设计下仍然绿色字,框内为白色
预览或运行,复选框内为白色,文字为绿色,但勾选checkbox却看不到“√”
qdialog{background-color:rgb(243,243,243);}
qcheckbox{color:rgb(0,255,0);}
qcheckbox::indicator{background-color:white;}
问题1找到答案了,是受arch系统主题的影响,win10没有影响
【以下回答由 GPT 生成】
问题1:为什么在新项目中窗口的背景默认是黑色的?
回答:在新项目中,窗口的背景默认是黑色的是因为QDialog被设置为透明的背景颜色,导致背景被透明化,从而显示为黑色。为了解决这个问题,可以将QDialog的背景颜色设置为所需的颜色,或者将其设置为不透明。
解决方法:在QSS样式表中添加以下代码:
qdialog { background-color: rgb(243, 243, 243); }
将窗口的背景颜色设置为浅灰色。确保在代码中正确使用了QWidget的子类名称,如QMainWindow、QDialog等。
问题2:为什么QCheckBox在设计模式和预览/运行时显示不一样?
回答:QCheckBox的显示不一致可能是由于样式冲突或未正确设置样式表所导致的。设计模式下显示正常是因为在设计模式下,QCheckBox的默认样式被应用,而预览或运行时则可以根据样式表进行自定义。
解决方法:在QSS样式表中添加以下代码:
qcheckbox { color: rgb(0, 255, 0); }
将QCheckBox的文字颜色设置为绿色。确保在代码中正确使用了QCheckBox的名称。
问题3:为什么QCheckBox在设计模式和预览/运行时显示不一样?
回答:QCheckBox在设计模式和预览/运行时显示不一样的原因可能是样式冲突或未正确设置样式表所导致的。在设计模式下文字显示为绿色是因为设计模式使用的是默认样式,而预览或运行时可以根据样式表进行自定义的显示。
解决方法:在QSS样式表中添加以下代码:
qcheckbox { color: rgb(0, 255, 0); }
qcheckbox::indicator { background-color: rgb(255, 255, 255); }
将QCheckBox的文字颜色设置为绿色,并将复选框的背景颜色设置为白色。确保在代码中正确使用了QCheckBox的名称。
问题4:为什么在预览或运行时无法看到复选框内的勾选符号?
回答:在预览或运行时无法看到复选框内的勾选符号可能是因为将复选框内的样式设置为白色导致的。默认情况下,勾选符号的颜色是黑色,因此如果复选框内的样式被设置为白色,勾选符号就会无法显示。
解决方法:将复选框内的样式设置为默认颜色,即黑色。
qcheckbox::indicator { color: rgb(0, 0, 0); }
确保在代码中正确使用了QCheckBox的名称。
以上是针对问题1到问题4的解决方法,可以尝试将这些样式表代码添加到你的项目中进行测试。
【相关推荐】
问题1 你是不是Qt用的dark模式的配色?
设计受Qt 默认配色影响 预览的才是正常的