1

我最初的问题是使 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 字体有什么问题?

4

4 回答 4

2

首先,我不知道为什么字体不起作用,我只能问。我有一种感觉,默认标题栏类似于几乎不可能设置样式的窗口标题栏。我正在搜索用于标题栏的小部件的源代码,但一无所获。是一些代码,祝你好运。

我认为样式表不支持字体更改。默认情况下,对于从 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 为浮动编码插槽。

于 2014-10-29T08:24:28.590 回答
1

QDockWidget *dock = new QDockWidget(); QFont curFont = dock->font(); curFont.setBold(true); dock->setFont(curFont);

于 2014-02-27T11:35:01.097 回答
0

像这样指定它

MyDock->setStyleSheet("QDockWidget::title { font: 75 11pt "Ubuntu";}");

其中 75 是粗体参数,11pt 是字体大小,“Ubuntu”是字体类型。

于 2012-06-28T10:33:00.420 回答
-1

您缺少分号(和右括号?)。

myDock->setStyleSheet("QDockWidget::title { font: bold; }");
于 2016-09-14T13:17:52.777 回答