有谁知道如何能够为Qt应用程序的整个窗口设置背景颜色?
到目前为止,我正在使用样式表,但只能弄清楚如何为窗口小部件分配背景颜色,如QGroupBox或QPushButton.基本上,如果我想要黑色背景,如何在没有原始背景边框的情况下使其无缝化?
我正在使用 Qt 5.3 并尝试将QSlider. 但是,当我应用样式表时,刻度线消失了。有谁知道如何在不影响刻度线的情况下保持样式?
这是样式表:
QSlider::groove:horizontal
{
border: 1px inset #B0B0B0;
background-color: #EAEAEA;
height: 2px;
}
QSlider::Handle
{
border: 1px solid black;
background: #B0B0B0;
background-image: url(:/metal_background_small);
width: 12px;
margin: -8px 0;
}
QSlider::Handle:Hover
{
border: 1px solid black;
background: #707070;
background-image: url(:/metal_background_small);
}
QSlider::sub-page
{
/* margin: 7px 1px 7px 0px;*/
height: 2px;
background: #05bcfe;
}
Run Code Online (Sandbox Code Playgroud) 我试图在悬停并按下时更改QpushButton的图标,将QtDesigner与样式表一起使用。我试过了
QpushButton{
qproperty-icon:url(:/images/start.png);
}
QPushButton:hover
{
qproperty-icon:url(:/images/start_hov.png);
}
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。
我尝试从QtDesigner菜单进行设置, 但效果不佳。
我正在学习使用 Qt 样式表向我的应用程序添加不同的样式。我上网查看了 Qt 文档,其中说您可以使用名为 的东西ID Selector,可以将主题应用于某些对象。这就是我实现此功能的方式:
QPushButton#button
{
color:red;
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。它仅在我尝试不使用时才有效ID Selector:
QPushButton
{
color:red;
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我使用了复制和粘贴,所以我100%确定我没有把名字弄错。
我非常需要增加滑块的句柄大小,但是没有CSS选项可以做到这一点(styleSheet())。Qt docs的默认示例对我也没有帮助。
我有一个像这样的滑块:

我希望增加其手柄的高度,如下图所示,但我猜不出该怎么做。也许唯一的方法是继承QAbstractSlider?

这是我代码中的样式表:
"QSlider::groove:horizontal {"
"border: 1px solid #999999;"
"height: 32px;" /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */
"background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #c4c4c4);"
"margin: 2px 0; }"
"QSlider::handle:horizontal {"
"background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #b4b4b4, stop:1 #8f8f8f);"
"border: 1px solid #5c5c5c;"
"width: 40px;"
"margin: -20px 0;" /* handle is placed by default on the contents rect of …Run Code Online (Sandbox Code Playgroud) 如何设置 QTabWidget 的样式,如下图所示。
问题是:如果我设置样式表
QTabWidget:pane {
border: 1px solid gray;
}
Run Code Online (Sandbox Code Playgroud)
然后它看起来像这样:
我知道很多人都问过这个问题.我也在这里搜索过它.最简单的解决方案之一是样式表:
QRadioButton {
background-color: rgb(252,254,252);
color: black;
}
QRadioButton::indicator {
width: 11px;
height: 11px;
border-radius: 5px;
}
QRadioButton::indicator::unchecked{
border: 1px solid;
border-color: rgb(132,132,132);
border-radius: 5px;
background-color: white;
width: 11px;
height: 11px;
}
QRadioButton::indicator::checked{
border: 3px solid;
border-color: white;
border-radius: 6px;
background-color: rgb(0,116,188);
width: 7px;
height: 7px;
}
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,结果就像这样
(按钮只有白色圆形边框,内部为蓝色圆形).但是,我们可以在它们之外制作黑色边框,就像标准的单选按钮一样
?(黑色边框 - >白色边框 - >蓝色圆形).我们可以在Qt中做到吗?
我有一个QPushButton我想设置背景颜色.我可以使用样式表:
m_iconButton->setStyleSheet("QPushButton {"
"background-color: red "
"}");
Run Code Online (Sandbox Code Playgroud)
但是我想在函数中使用它void foo(const QColor& a_color).我如何确保样式表将此a_color作为参数?
所以像这样:
void foo(const QColor& color) {
m_iconButton->setStyleSheet("QPushButton {"
"background-color: a_color"
"}");
}
Run Code Online (Sandbox Code Playgroud)
有没有办法用样式表做到这一点?如果没有,我怎么能没有它们呢?
我有一个 Qt 应用程序,在许多其他小部件类型中,它使用 QTabWidget。我很难为这个对象设置背景颜色的样式。
我在我的样式表中尝试了从其他论坛帖子中找到的以下一些行,但对程序没有影响
QTabWidget { background-color: black; }
QTabWidget::pane { background-color: black; }
QTabWidget#tabWidget { background-color: black; }
QTabWidget#tabWidget::pane { background-color: black; }
Run Code Online (Sandbox Code Playgroud)
如果我使用QWidget { background-color: black; },那么是的,我的颜色已正确更改,但是我程序中的所有其他小部件也已更改...所以这不是我要找的...
我也在代码中尝试过,ui->tabWidget->setStyleSheet("background-color: black");但这也是不可取的,因为它改变了所有子小部件的背景颜色。
有没有人对如何设置 QTabWidgets 内容背景区域的样式有任何其他想法?
qstylesheet ×9
qt ×9
c++ ×5
qpushbutton ×2
qslider ×2
qtabwidget ×2
css ×1
qradiobutton ×1
qt-designer ×1
qwindow ×1