qt - 再次打开时 QDialog 未正确显示
问题描述
我对 Qt5 有这个问题。在我的 GUI 中,如果我按下一个按钮打开另一个窗口,我有以下代码:
void Viewer::openWindow() {
if (!m_window){
m_window = new myWindow(this);
}
m_window->raise();
m_window->show();
return;
}
从哪里myWindow
继承QDialog
。这是在现有的代码库中,我知道可能有很多陷阱。例如,如果我设置 deleteOnClose 我将有悬空指针等等......虽然所有这些都不会发生并且原则上它是有效的。我还有一个“关闭”按钮,它会调用reject()
它工作正常。
我遇到的问题是当我在该对话框上按“X”时 - 窗口会消失得很好。一旦我尝试重新打开它(即Viewer::openWindow()
再次调用),它将无法正确显示其内容。我可以调整窗口大小,它看起来会很好。但是,GUI 中的任何更改(例如从下拉菜单中选择某些内容都不会顺利进行)会有些滞后。窗口似乎没有正确重绘。
不过,当我使用关闭按钮关闭窗口时,我没有这个问题 - 我可以重新打开它就好了。
我也试过打电话repaint()
或update()
在那个对话框上,这没有帮助。
和想法?
解决方案
推荐阅读
- react-native - 地图始终位于搜索位置标记的中心
- typescript - 管道函数参数类型被推断为任何
- r - 如何通过删除列中的特定值来创建新数据框?
- javascript - 无法从 Node JS 中的另一个箭头函数调用箭头函数
- android - 手机上的 Unity 2D 滑动延迟
- opengl - 片段的 Opengl 相对 Z 缓冲区
- snowflake-cloud-data-platform - SnowSQL 安装 Ubuntu 16.04.6
- mysql - 如何将 SQL 查询转换为 ElasticSearch 样式?
- java - 从 toString 方法抛出异常
- python-3.x - 如何有更好的代码通过 pre-commit 检查?