Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt:如何将QPushButton的背景色设置为系统颜色?_Qt - Fatal编程技术网

Qt:如何将QPushButton的背景色设置为系统颜色?

Qt:如何将QPushButton的背景色设置为系统颜色?,qt,Qt,我在父窗口小部件上有一个QPushbutton。现在我想给父窗口小部件一个新的背景(例如颜色、图像)。这个效果很好(使用Qpalete)。但是,在使用Unix时,父窗口的颜色会传播到按钮。就像按钮有透明的背景一样。在某些情况下,这很好,但有时我只希望父窗口小部件的背景更改一个,而不是子窗口小部件。这样按钮将保持其原始的“系统”外观。如何做到这一点?我试了很多…但是没有给我想要的结果。关于如何实现这一点有什么想法吗 Thx您是否尝试过使用按钮的setBackgroundRole?可能您的按钮具有q

我在父窗口小部件上有一个QPushbutton。现在我想给父窗口小部件一个新的背景(例如颜色、图像)。这个效果很好(使用Qpalete)。但是,在使用Unix时,父窗口的颜色会传播到按钮。就像按钮有透明的背景一样。在某些情况下,这很好,但有时我只希望父窗口小部件的背景更改一个,而不是子窗口小部件。这样按钮将保持其原始的“系统”外观。如何做到这一点?我试了很多…但是没有给我想要的结果。关于如何实现这一点有什么想法吗


Thx

您是否尝试过使用按钮的
setBackgroundRole
?可能您的按钮具有
qpalete::NoRole
,因此从其父级继承了其角色。

如果您的按钮似乎从主窗口继承了背景,请尝试将样式表设置为此格式

this->setStyleSheet("MainWindow{background-color:red}");

现在,您的按钮将不会继承背景。

不,这不起作用。按钮从其父级继承角色…并且父级在Role::Window、Role::button上设置了颜色。因此,更改按钮的背景角色不会改变任何东西。好的,我找到了一个解决方案…必须使用standardPalette()(可以通过QApplication::style()Order widget->style()检索)并用标准调色板的值覆盖childwidget的整个调色板或单个角色。