【问题标题】:QDialog - How to remove the minimize buttonQDialog - 如何删除最小化按钮
【发布时间】:2014-11-26 14:25:35
【问题描述】:

基于 Qt 4.8 的应用程序 - QDialog 问题,最小化按钮

  • Windows 和 Gnome (linux)

    • 模式对话框出现,关闭按钮位于右上方,最小化按钮不存在
    • 每个对话框中的最小化选项都是灰色的。
    • 这是有道理的,因为 QDialog 是模态的 - 如果将其最小化,整个应用程序将被阻止。

但问题来了:

  • 在 KDE (linux) 中会出现最小化-最大化按钮。

这似乎是一个依赖于平台的功能 -

我不太确定该做什么。

有什么想法...? (我已经尝试了一些 windowsFlags 但找不到有效的一组。

试过了:

  • setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
  • Qt::WindowFlags 标志 = getWindowFlags();标志 |= Qt::WindowMinimizeButtonHint; setWindowFlags(标志)

--- 但基本问题是为什么 Windows/GNOME 上的行为与 KDE 不同

【问题讨论】:

  • 你到底尝试了什么?
  • setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint); Qt::WindowFlags 标志 = getWindowFlags();标志 |= Qt::WindowMinimizeButtonHint; setWindowFlags(flags) ** 但基本问题是为什么 Windows/GNOME 上的行为与 KDE 不同

标签: qt kde qdialog


【解决方案1】:

来自Qt Documentation

在带有 KDE 的 Linux 中,此代码创建一个没有关闭的窗口,并且 标题栏中的最小化和最大化按钮。

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

【讨论】:

  • 这里有两个问题: (a) 这仅在您设置 QDialog 对象的父级时有效; (b) 此代码删除了最小化按钮,但没有删除最大化。
【解决方案2】:

如果您希望 MainWindow 顶部没有任何按钮,请在 MainWindow 的构造函数中使用:

this->setWindowFlags(Qt::SubWindow);

如果您只想删除最小化按钮,请使用:

this->setWindowFlags(Qt::Dialog);

【讨论】:

  • 这仅在您设置 QDialog 对象的父对象时有效;请注意,它不会删除最大化按钮。 (这是 KDE 独有的行为)
猜你喜欢
  • 2015-05-02
  • 2011-02-09
  • 2011-02-27
  • 2012-01-10
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
相关资源
最近更新 更多