【问题标题】:QtDialog with close button but hidden toolbar, minimize and maximize buttons带有关闭按钮但隐藏工具栏、最小化和最大化按钮的 Qt 对话框
【发布时间】:2019-01-17 15:42:36
【问题描述】:

我正在开发一个 Qt 应用程序。我应该创建一个弹出窗口,它只有一个关闭按钮,没有工具栏、最小化和最大化按钮。

知道怎么做吗?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    我不知道“没有工具栏”是指“没有标题栏”,但this example 可以帮助您。无论如何,通过使用以下代码,您可以拥有一个只有关闭按钮和“标题栏”的窗口:

    window->setWindowFlags(Qt::Window | Qt::WindowCloseButtonHint);
    

    如果你不想要标题栏,请尝试将其移除并自行设计。

    【讨论】:

    • 感谢您的回答,@s4eed。 “没有工具栏”是指“没有标题栏”
    【解决方案2】:

    您可以更改窗口标志。但是您预期的窗口需要一个 QDialog:没有菜单栏,只有一个关闭按钮(开箱即用)。 否则请参考此 (https://doc.qt.io/qt-5/qtwidgets-widgets-windowflags-example.html) 并为 Qt::WindowCloseButtonHint 设置标志。

    【讨论】:

      【解决方案3】:

      如果您使用setWindowFlags(Qt::Window | Qt::FramelessWindowHint);,您将摆脱标题栏,但使用标题栏上的所有按钮,包括关闭按钮。

      这意味着您需要实现一种移动窗口的方法,因为标题栏用于此目的。见this answer

      然后使用可以放在对话框顶部的关闭按钮实现您自己的标题栏类。

      不幸的是,您无法控制系统标题栏的外观,因此无法通过样式表来解决这个问题。

      【讨论】:

        猜你喜欢
        • 2011-03-13
        • 1970-01-01
        • 2017-01-07
        • 1970-01-01
        • 2012-02-20
        • 1970-01-01
        • 1970-01-01
        • 2016-03-04
        • 1970-01-01
        相关资源
        最近更新 更多