Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
User interface 如何在Qt Creator中设置选项卡小部件的背景色?_User Interface_Qt4_Qt Designer - Fatal编程技术网

User interface 如何在Qt Creator中设置选项卡小部件的背景色?

User interface 如何在Qt Creator中设置选项卡小部件的背景色?,user-interface,qt4,qt-designer,User Interface,Qt4,Qt Designer,我正在使用Qt Creator。在我的GUI中,我使用一个选项卡小部件。此小部件应具有与主窗口相同的灰色背景色(图A)。我通过在Qt Designer中编辑样式表实现了这一点: background-colour: rgb(240, 240, 240); 但现在我有两个新问题无法解决: 按钮(->发送)不再四舍五入 编辑框的背景色也变为灰色 在我更改样式表之前,GUI如图B所示 我也试过了 QPalette pal = m_pUi->tabWidget->palette();

我正在使用Qt Creator。在我的GUI中,我使用一个选项卡小部件。此小部件应具有与主窗口相同的灰色背景色(图A)。我通过在Qt Designer中编辑样式表实现了这一点:

background-colour: rgb(240, 240, 240);
但现在我有两个新问题无法解决:

  • 按钮(->发送)不再四舍五入
  • 编辑框的背景色也变为灰色
在我更改样式表之前,GUI如图B所示

我也试过了

QPalette pal = m_pUi->tabWidget->palette();
pal.setColor(m_pUi->tabWidget->backgroundRole(), Qt::blue);
m_pUi->tabWidget->setPalette(pal);
但这只会更改选项卡后面的颜色,而不会更改整个“选项卡窗口表面”的整个颜色

我是否需要进行额外的样式描述,或者是否有更简单的解决方案

图片A-带有样式表

图片B-如果没有样式表,则要访问的“内容”称为QTabar。记住这一点,您可以编写如下样式表:

QTabBar::tab 
{
    background: #48555E;
    color: white;   
    border-color: #48555E;
}

QTabBar::tab:selected, 
QTabBar::tab:hover 
{
    border-top-color: #1D2A32;
    border-color: #40494E;
    color: black;
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #C1D8E8, stop: 1 #F0F5F8); 
}

此外,您可能会发现这一点很有见地。

我也有同样的问题,我发现您需要为每个选项卡设置此属性:

ui->tab->setAutoFillBackground(true);
我不确定,但我认为也有必要将该属性设置为
QTabWidget


我希望这能帮上忙。

我发现在XP下背景总是灰色的,但在Windows 7下背景是白色的。你试过弄乱调色板上的按钮颜色吗?可能是选项卡栏将其用于其选项卡。在没有样式表的图片上,选项卡和按钮看起来非常相似。是的,我试过了,效果很好-非常简单,如果你只需要窗口的背景色,就没有必要乱弄样式表。你也可以在QtDesigner中设置,我就是这么做的。在Object Inspector中,每个选项卡都是QTabWidget下的QWidget;检查每个的setAutoFillBackground属性,就完成了。