【问题标题】:Setting QDockWidget::title StyleSheet设置 QDockWidget::title 样式表
【发布时间】:2016-09-14 21:17:52
【问题描述】:

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

【问题讨论】:

标签: qt qdockwidget qtstylesheets


【解决方案1】:

首先,我不知道为什么字体不起作用,我只能问。 我有一种感觉,默认标题栏类似于几乎不可能设置样式的窗口标题栏。 我正在搜索哪个小部件用于标题栏的源代码,但什么也没找到。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 为浮动编码插槽。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这样指定

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

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

      【讨论】:

      • 我试过myDock->setStyleSheet("QDockWidget::title { font: 75 11pt \"Verdana\";}");但没有用。
      【解决方案4】:

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

      myDock->setStyleSheet("QDockWidget::title { font: bold; }");
      

      【讨论】:

        猜你喜欢
        • 2015-03-12
        • 2014-03-31
        • 1970-01-01
        • 2023-03-25
        • 2021-12-13
        • 2023-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多