User interface 如何在Qt Creator中设置选项卡小部件的背景色?
我正在使用Qt Creator。在我的GUI中,我使用一个选项卡小部件。此小部件应具有与主窗口相同的灰色背景色(图A)。我通过在Qt Designer中编辑样式表实现了这一点: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();
background-colour: rgb(240, 240, 240);
但现在我有两个新问题无法解决:
- 按钮(->发送)不再四舍五入
- 编辑框的背景色也变为灰色
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属性,就完成了。