【问题标题】:Disable QDialogs default close button (upper left "cross button")?禁用 QDialogs 默认关闭按钮(左上角“十字按钮”)?
【发布时间】:2012-04-15 10:50:50
【问题描述】:

是否可以禁用/删除对话框左上角的QDialogs默认关闭按钮?

【问题讨论】:

    标签: c++ qt qdialog


    【解决方案1】:

    WindowFlags 中清除WindowCloseButtonHint 可能会做你想做的事。查看示例here

    【讨论】:

    • 我现在尝试通过 setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint);setWindowFlags(windowFlags() & ~Qt::WindowCloseButtonHint); 来装饰窗口。问题是,这两个想法仍然保留最大化按钮,并且在最大化时再次出现关闭按钮。有什么想法吗?
    【解决方案2】:

    在你的对话框中使用这个函数

    dlgLobLobLob->setWindowFlags(Qt::Dialog | Qt::Desktop)
    

    【讨论】:

    • 我试过了,但不幸的是它不起作用 - 所有按钮(关闭、最大化、最小化)都可用。猜猜它取决于 Unity 桌面。
    【解决方案3】:

    试试setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowTitleHint); 。您可能需要检查Window Flags Example,并尝试查看所有可能的 WindowFlags 组合的效果

    【讨论】:

      【解决方案4】:

      至少在(嵌入式)Linux 中,您可以这样做:

      setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
      

      这样,我得到一个有标题但没有按钮的窗口。

      【讨论】:

        【解决方案5】:

        这对我有用:

        setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint)

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-26
        相关资源
        最近更新 更多