问题标签 [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 投票
3 回答
91481 浏览

c++ - QDialog exec() 并获取结果值

我已经进行了子类QDialog化以实现类似于QMessageBox(我需要这个来允许定制)的功能。它有一条短信和确定、取消按钮。我正在显示exec()用于使其阻塞的对话框。现在,当用户单击 OK/Cancel 时,如何返回 true/false 值?

我尝试将按钮连接到setResult()然后,单击时返回结果值,但是

  1. 单击按钮不会关闭对话框
  2. 返回值不正确。以下是我编写的代码。我认为我在执行/结果部分错了 - 但我不确定如何解决它。

用户将实例化类并调用showYourself()预期返回值并关闭(并删除)对话框。

我已经发布了部分代码。如果您需要更多信息,请告诉我,我将发布完整版本。

0 投票
2 回答
7516 浏览

c++ - MainWindow 中的 QDialog 的全屏显示仅有时有效

(在 Qt 4.8 和 Ubuntu 12.10 上使用 C++ 进行测试)

我有一个显示 QDialog 的主窗口。当我将 Dialog 窗口全屏显示时,它似乎并不总是有效,即使它似乎是一个正确的窗口。意思是,窗口可以全屏显示,尽管只是有时。

有人有想法吗?我知道 Qt 声明它可能不适用于所有 X 环境,但它不会那么糟糕,不是吗?

0 投票
1 回答
1159 浏览

qt - Qt问题-模态QDialog关闭后释放鼠标按钮

模态QDialog关闭后,父小部件不响应第​​一次鼠标单击,通过在mousemoveevent()中调用done()关闭QDialog,这导致对话框关闭后鼠标按钮仍被按下,第二次单击将起作用像平常一样。

到目前为止我的发现:

  1. 如果done(int)被调用MouseReleaseeEvent(),一切都按预期工作

  2. 似乎QDialog缺少MouseButtonRelease事件(在MouseButtonPress事件触发后预期),因为QDialog已经在 中关闭,MouseMoveEvent这会弄乱父小部件的鼠标事件。

我的目的是做一个QDialog可以通过滑动关闭的,当它检测到鼠标按下并移动到某个位置时,它将被关闭。

如果以前遇到过它或知道发生了什么的每个人都可以给我一些建议,我们将不胜感激。

非常感谢。

另外,这是我第一次在这里发布问题,如果我错过了我想提供的任何信息,请告诉我......

0 投票
2 回答
1935 浏览

qt - 带有浮动工具栏的 QDialog

如何QDialog在 Qt 中创建带有浮动工具栏的工具栏?

不适合将QMainWindow带有工具栏的附件作为小部件。QDialog

0 投票
3 回答
5626 浏览

qt - 检测 QMainWindow / QDialog (Qt 4.8) 的移动结束

我在 X11 上使用 Qt 4.8.3。

我需要知道用户何时结束在屏幕上拖动窗口,以便读取最终位置并最终启动动画以将窗口位置调整为“允许”位置。

我注意到QWidget::moveEvent每个小动作都会调用 ,但这非常不方便,因为我必须在用户释放鼠标按钮并且移动完全完成时才执行位置检查(并最终启动动画)。

这是真正的问题:当用户单击标题栏时,似乎没有办法检测鼠标释放事件(或获取鼠标按钮状态),因为它是由操作系统而不是 Qt 控制的。我也尝试了QWidget::x11event(XEvent* e)...但是事件只收集在窗口内,而不是标题栏。

有人知道实现这一目标的方法吗?

我怀疑我将不得不自己重新实现标题栏……太糟糕了……</p>

0 投票
1 回答
1516 浏览

qt - 如何刷新 QWidget 绘画缓存?

我正在开发一个自定义样式的 QMessageBox。在我的自定义 QStyle 类中的方法 Polish() 中,我调用:

这很好用,除非我们使用半透明边框:半透明部分在每次重绘时变得越来越暗(例如,当多次按下“显示详细信息”/“隐藏详细信息”时)。

更新:我刚刚意识到,当移动消息框时,“太暗的半透明内容”也会被移动。因此,我想刷新 QWidget 绘画缓存 - 如果存在这样的东西(后备存储??)。

0 投票
3 回答
41345 浏览

python - PyQt:防止在 QDialog 中调整大小和最大化?

如何防止 PyQt 中的 QDialog 可调整大小或最大化?我不想改变窗口的大小。

0 投票
1 回答
769 浏览

qt - 用于访问对象方法的 QPointer

有一个奇怪的问题,QPointer用于从不同的、不相关的对象访问对象方法。

我准备了一个小例子来更好地解释它。

我创建了两个QWidget,Widget_A 和 Widget_B 在一个简单的QDialog

我需要从 Widget_B 访问 Widget_A 的公共方法:我将 widget_a 指针传递给 widget_b 的方法进行QPointer赋值。Widget_A 包含一个QLineEdit我想从 Widget_B 中清除的内容。

问题是当按下 pushButton_B 时 lineEdit_A 没有任何反应。控制台没有显示任何问题,所以最明显的原因是 Widget_B 正在处理不同的 Widget_A 对象,而不是我通过的那个。

我还创建了从 QWidget_A 到 QWidget_B 的连接,因此在编辑 lineEdit_A 时 label_B 文本会相应更改:这有效。

在询问之前,我需要一个QPointer因为在我的真实项目中 Widget_A 可以被删除。你能解释我错在哪里吗?我应该选择不同的方式吗?谢谢。按照一些片段

小部件_a.h

小部件_a.cpp

小部件_b.h

小部件_b.cpp

对话框.h

对话框.cpp

0 投票
3 回答
3450 浏览

c++ - 如何在静态单例类中以编程方式从 exec 方法返回

我正在 SBC6000x 板上开发 Qt 应用程序(Qt 版本 4.7.3)。

我有一个从 QDialog 派生的 MessageBox 类。我已经将这个类设为单例。

每当要显示消息框时,我都会使用 .exec 方法来显示它。

我需要一个接一个地显示消息框的地方很少。

所以,要显示新的消息框,我必须关闭前一个并显示新的。

例如,当消息框打开时,同时我从后台收到错误消息,我必须关闭当前显示的消息框并显示有错误的消息框。

为了关闭上一个对话框,我从 messagebox 类中公开了 CloseDlg 方法并尝试关闭它。

在这个 CloseDlg 中,我正在发出完成的信号。

并将其称为

我的表演方法是:-

当我再次调用 showMsgBox 时,它会向我显示以下警告。QDialog::exec:检测到递归调用

问题是,它不会从先前的 exec 调用中返回(除非我们返回,如上文所述 //)。

我尝试使用 close()、accept()、reject() 方法而不是 finished() 事件,但没有任何效果。

从以前的 exe 调用返回并实现上述场景的方法是什么?欢迎任何帮助。

0 投票
1 回答
10794 浏览

python - PyQt - 如何检查 QDialog 是否可见?

我有个问题。我有这个代码:

所以,当我说 Ball() 时,这将在 QDialog 上绘制一个球。然后当这完成后,我QDialog在一个无限循环中移动球。我想说一些话,比如QDialog.isVisible()他们四处走动

我没有任何父对话框或表单或任何子对话框或表单。就是这样QDialog。我知道这样做很愚蠢QDialog,但我不允许使用任何其他东西QDialog