问题标签 [qdialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
432 浏览

python - PyQt multiple QDilaog class signal catching

I have a PyQt Gui application that has multiple QDialog windows that I use to plot data using matplotlib widget. This is the code I'm using is below.

Only one emitted signal is caught. Which ever QDialog is created last catches it's emitted signal. If the TempBox dialog is created last the NewTemp_signal is caught, or if the RealBox dialog is created last the NewReal_signal is caught. But, the other signal is not caught. How do I catch both signals to update all dialogs? Thanks

Dialog window class

Functions that create new windwos

In another function I emit a signal

0 投票
1 回答
1131 浏览

qt - How do I know if a window blocked by modal

I have several modal dialogs and main dialog where I exec() modal. How do I know if a main window blocked by modal or not?

0 投票
1 回答
2653 浏览

c++ - QWidget::setFixedHeight() 不工作/仍可调整大小

我最近搬到了 Qt5 并遇到了一个我在 Qt4 中没有遇到的问题。

我有一个模态对话框,需要具有固定高度但可调整大小的宽度。为了演示,这里有一个精简的版本。

即使我使用 setMinimumHeight & setMaximumHeight 而不是 setFixedHeight 它仍然可以调整大小。

在上面的例子中,所有输入 qDebug 的东西都被证明是相等的。如果最小和最大高度相等,则对话框不应调整大小。但在这里,它是。

这里值得一提的是,如果没有 setFixedHeight,对话框是完全可调整大小的,但使用 setFixedHeight,对话框只能调整到某个点。

更新:我已经连接button到一个输出dialog's minimumHeight、和 current的插槽maximumHeight,就像上面一样。当我调整对话框大小时,有时它的当前高度超过了它的最大高度。这怎么可能?!sizeHint.height()heightqDebug()

0 投票
1 回答
1572 浏览

qt - 无法检测到 QDialog 内存泄漏的原因

我正在做一个项目,使用 Qt 和一些定制的 QDialogs 供用户输入。由于我的开发盒的硬件限制,我想监控我的应用程序的内存使用情况。我如何执行对话框。

由于对话框是一个局部变量,我希望它在堆栈上创建并在函数结束后立即销毁(在第 5 行之后)。当应用程序反复打开和关闭对话框时,它的内存使用量会上升,并且它永远不会返回初始值 ['Memory (Working Set)' and 'Memory (Private Working Set)'任务管理器的列]。我使用了Application Verifier,启用了所有基本测试,并且没有显示错误。内存模式如下所示(数值仅由说明组成):

  • 应用程序启动(工作集 = 12000K,私有集 = 6000K)
  • 打开 Dialog-1(工作集 = 14000K,私有集 = 7000K)
  • 关闭对话框(工作集 = 12010K,私有集 = 6005K)
  • 打开 Dialog-2(工作集 = 14020K,私有集 = 7000K)
  • 关闭对话框(工作集 = 12010K,私有集 = 6008K)
  • 打开 Dialog-3(工作集 = 14080K,私有集 = 7010K)
  • 关闭对话框(工作集 = 12040K,私有集 = 6008K)
  • ...

那么,有什么想法可以追踪问题的根本原因吗?(实际上,我在使用 QFileDialog 的静态方法时也遇到了类似的问题getOpenFileName,并且在这里getSaveFileName找到了一些讨论,但似乎没有解决)

编辑我在我的对话框中使用 QFormLayout,并通过添加小部件layout->addRow("label text", mywidget);,我怀疑对象销毁是否无法干净地删除标签。

编辑我用 QDialog 创建了一个测试程序,有十个 QLineEdits,使用相同的添加小部件策略。问题依然存在。(如果我经常创建和关闭对话框,这个测试程序会出现问题,每秒说 10 次)

主窗口.h

主窗口.cpp

平台

  • Win 7 x64, MinGW 4.7.2 x64 (rubenvb-build), 4GB 内存
  • Qt 4.8.5(使用上述工具链本地构建)
  • Qt-Creator 2.6.1(使用上述工具链本地构建)
0 投票
2 回答
12651 浏览

qt - 如何在 Qt 中显示一个窗口并在它关闭后立即删除它?

作为一个非常简单的示例,我想在按下按钮时在 Qt 中显示一个对话框。通常的模式(在我目前正在处理的应用程序中)似乎如下:

来自 .NET 和 Windows 窗体(并且因为我不需要从类中的其他地方访问该对象),我更熟悉以下模式:

局部变量意味着我没有另一个实例字段,而且窗口不会在内存中停留比必要的时间更长的时间。将其直接翻译成 C++ 会有点难看,因为事后没人会澄清。我尝试了以下事情:

  1. shared_ptr. 不走运,delete只要方法结​​束,窗口就会 d,这意味着新窗口会出现一瞬间然后又消失了。不太好。

  2. exec()而不是show(). 这适用于模态对话框,但文档似乎暗示它也会停止事件循环,QApplication::processEvents()如果仍需要更新,您应该定期调用。我在这里了解得很少,但我想这也不太好。

  3. deleteLater(). 可悲的是,仅显示一个窗口并不会阻塞deleteLater,因此它一出现就消失了。

关闭窗口后是否有一个不错的选择来清理它?

0 投票
9 回答
19468 浏览

c++ - 如何防止回车键关闭我的 QDialog (Qt 4.8.1)

我有QDialog一个QDialogButtonBoxOKCancel按钮处于活动状态。有时我会根据对话框的状态禁用或隐藏“确定”按钮。看来,无论我做什么,Enter 键总是会激活 OK 按钮。我真的不希望这种情况发生。我努力了:

  • 每次我显示/隐藏/启用/禁用/任何按钮时,将默认和自动默认属性设置为 false
  • 在 OK 按钮上安装事件过滤器以拦截关键事件(按下和释放)以进行返回、输入和空格
  • 将按钮上的焦点策略设置为NoFocus

上面这些东西的所有组合,回车键仍然接受对话框。有谁知道如何阻止这个?看来我应该能够阻止像这样简单的事情?

0 投票
1 回答
1446 浏览

qt - QDockWidget 没有停靠在 QDialog 上

在 QDialog 上使用 QDockWidget 是否正确?当我尝试使用它时,停靠小部件没有停靠在对话框窗口上。执行应用程序时,我无法调整停靠小部件的大小。

0 投票
1 回答
770 浏览

qt - 如何使用 Qt::CustomizeWindowHint 在 QDialog 中保持模态行为?

使用 setWindowFlags 上的 CustomizeWindowHint 禁用所有框架时,QDialog 的模态不起作用...

当我评论第三行时,它根本不起作用。我专注于其余的事情。我怎样才能让它工作?

或者如何在不这样做的情况下移除按钮和框架?

0 投票
3 回答
1493 浏览

python - 从 pyside 的对话框中删除 what'sThis

我发现很多关于在 C++ 中执行此操作的问题,但没有关于在 Python/PySide 中执行此操作的问题。我想删除“?” 我的 QDialog 顶部的按钮
在此处输入图像描述
。我知道我会使用setWindowFlags(),但是我不知道我应该传递什么作为参数。

0 投票
1 回答
1627 浏览

c++ - Qt 对话框何时返回 QDialog::Rejected

我有麻烦了。我有一个 QDialog 作为登录表单。当我登录时,表单关闭,我的主窗口将出现。我的登录很好,但是当它关​​闭时它返回 QDialog::Rejected。

我能做些什么来防止 QDialog::Rejected 的返回?它什么时候会返回 QDialog::Rejected?

我登录时的代码:

主要的() :

它总是会被拒绝。