我最初的问题是让QDockWidget标题变为粗体。 我试过这个并且有效:
myDock->setStyleSheet("QDockWidget { font: bold }");
但我无法理解为什么以下代码不起作用:
myDock->setStyleSheet("QDockWidget::title { font: bold }";
即使我使用更复杂的样式表,除了font: bold
之外,它的每个参数都有效:
myDock->setStyleSheet("QDockWidget::title { font: bold;
text-align: left;
background: red;
padding-left: 30px; }");
QDockWidget :: title font有什么问题?
答案 0 :(得分:2)
首先,我不知道为什么字体不起作用,我只能这么说。 我有一个感觉,默认标题栏类似于窗口标题栏,这几乎是不可能的样式。 我正在搜索源代码,哪个小部件用于标题栏但没有找到任何内容.. Here是一些代码,祝你好运。
我认为样式表不支持字体更改。默认情况下,从QWidget派生的所有内容都适用于背景等参数将始终有效。其他类似字体的东西可能会也可能不会实现。
但是为什么不制作自定义标题栏?它可以是QWidget中捆绑的任何东西。
QLabel *label = new QLabel("Header Text", myDock);
label->setStyleSheet("color: orange; font-size: 14pt; font-weight: bold;");
myDock->setWidget(bodyWidget);
myDock->setTitleBarWidget(label);
我已经使用Qt 5.3进行了测试,虽然有关闭或取消停靠的按钮,但它仍有效: - /
我认为您可以创建它们(使用按钮等)并将所有内容捆绑在一个小部件中,然后使用setTitleBarWidget进行设置并连接一些信号。 至少有hide()插槽用于关闭按钮,你可能需要使用setFloat为float编码插槽。
答案 1 :(得分:1)
QDockWidget *dock = new QDockWidget();
QFont curFont = dock->font();
curFont.setBold(true);
dock->setFont(curFont);
答案 2 :(得分:0)
像这样指定
MyDock->setStyleSheet("QDockWidget::title { font: 75 11pt "Ubuntu";}");
其中75是粗体参数,11pt是字体大小,“Ubuntu”是字体类型。
答案 3 :(得分:0)
你错过了一个分号(以及一个结束括号?)。
myDock->setStyleSheet("QDockWidget::title { font: bold; }");