问题标签 [qmainwindow]

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 回答
6186 浏览

qt - QToolBar 位置(如何让它保持在固定位置)

我最初需要以这种方式显示两个 QToolBar,它们位于两行中。我通过这个找到了该问题的解决方案:

如何设置 QToolBar 显示的行?

在我的程序中,第一行有几个 QToolBar,它们可以移动。在第二行中,我有另一个无法移动(固定)的 QToolBar。

我的要求是使第二个 QToolbar 始终位于底行。到目前为止,如果顶部的 QtoolBars 被移动,第二个工具栏的位置也会相应地改变。

0 投票
1 回答
590 浏览

qt - 在 QMdiArea 中处理多个文档的最佳实践?

我需要设计和开发一种图形软件,可以编辑包含图形元素的自定义文件等。

我希望该软件包含许多文档,QMdiArea这实际上是我在QMainWindow.

对于每个文档,我都需要 aQGraphicsView和 a QGraphicsScene,因为它们一起工作。

现在,我的问题是,我应该QGraphicsView用受保护/私有成员继承它自己的QGraphicsScene,还是应该创建一个继承QWidget和处理QGraphicsView/实例的类QGraphicsScene

还是有什么我没有想到的解决方案?

0 投票
1 回答
1410 浏览

qt - 尝试显示窗口时出现 Qt 错误分段错误

我有一个类ClientWindow。我已经创建了它的几个实例并将它们的指针附加到 aa 列表中。但是,如果我尝试显示任何窗口,则会收到“分段错误(核心转储)”,我将窗口列表保存在一个名为控制器的类中。

这是我的控制器头文件:

这是cpp文件:

这是我的主要内容:

0 投票
1 回答
1095 浏览

c++ - QDialogs show() 时保持 QMainWindow 最小化

我有一个应用程序,QMainWindow其 UI 处于最小化状态,一段时间后应用程序通过调用messageDlg->show()messageDlg是一个QDialog对象)抛出一条消息。像这样的东西

这导致我QMainWindow处于正常模式,这是我不希望发生的,即即使QDialog.show()调用了任何应用程序,也会尝试将应用程序保持在最小化窗口中。

我不希望每次QDialog->show()调用 a 时都检查应用程序是否处于最小化模式。

我已经跟踪了所有发布到的事件,QMainWindow::event()但在恢复我的窗口之前我看到的唯一事件是,QEvent::WindowStateChange即窗口状态已经从最小化模式更改。

QMainWindow即使QDialog显示任何 s ,是否有办法保持最小化?

0 投票
1 回答
765 浏览

qt - 带有 Qt::CustomizeWindowHint 标志的 QMainWindow 不起作用 aero snap

我使用带有 Qt::CustomizeWindowHint 标志的 QMainWindow 创建了一个窗口以删除标题栏。我使用自定义的小部件制作了一个新的标题栏并实现了窗口移动功能。所以我的窗口小部件不适用于移动窗口上的 aero-snap。(并且我的窗口在调整窗口大小时不能与 aero-snap 一起使用)如何将 aero-snap 与我的自定义小部件一起使用?或者你知道aero snap的api吗?我找到了一些与 aero snap apis 相关的网页,但他们只说 c# 什么是用于在窗口后面预览屏幕状态的 Aero 功能? 如何在 C++ 上使用这些函数?谢谢。

0 投票
1 回答
296 浏览

qt - 2 QMainWindow 粘合 - 布局大小

我有一个主窗口,我以这种方式在 main.cpp 中居中:

在这个“qmain”主窗口中,我可以创建另一个 QMainWindow 并尝试将两个窗口粘贴(或粘合,我不知道怎么说)。实际上,我希望第一个的右上角位于第二个的左上角。为此,我使用以下 Ui_MainWindow 的成员函数:

和 setInitialDiskMenuPosition :

但问题是我没有得到我想要的,因为中央小部件大小“parent-> widget->size()”只返回小部件的大小,而不是整个“qmain”父窗口。所以我有一个轻微的转变,因为“qmain”窗口的边界没有被考虑在内,如下所示:

enter image description here

If I could have access to the size of the whole parent window...

If anyone could help me

0 投票
1 回答
3614 浏览

c++ - 实现功能时keyPressedEvent错误Qt

我在尝试捕获击键的 qt 程序中遇到错误。在我的 qt 程序的 keyPressedEvent 函数中,但我遇到了一个奇怪的错误:

该类扩展了 qmainwindow

这是我的头文件:

这是我的 cpp 文件:

0 投票
1 回答
512 浏览

qt - Qt - 使用信号/插槽关闭子菜单

我有一个 Qt 主窗口,我在其中调用另一个窗口,实际上是一种子菜单,其中包含第一个窗口的参数;这是这个主窗口的一部分:

如您所见,我调用另一个QMainwindow(“ qmenu”);这是这个新窗口的代码(其类型是“ Ui_DiskGalMenu”):

在这个子菜单中设置参数后,我想用一个按钮(这里是“ pushButton_4”)关闭它。

我的问题是当我点击“pushButton_4”时,这个窗口没有关闭。

我也尝试重新实现closeEvent但没有成功。

任何帮助都会很棒

0 投票
0 回答
318 浏览

qt - Qt - GLWidget - 在 2 个 QMainWindow 之间获得焦点跟随鼠标

我从 Qt/OpenGL 应用程序开始。我有一个包含widget_2QGLWidget 的 GLWidget 子类(“”)的第一个 QMainWindow。此 GLWidget 呈现图形动画。

从这个 QMainWindow 的菜单中,我调用了第二个 QMainWindow,我在其中设置了动画的参数widget_2

除了焦点之外,一切都很好。当我将鼠标从 QWindow 移动到另一个时,我希望焦点跟随鼠标。

我尝试widget_2->setMouseTracking(true)在第一个 QMainWindow 的构造函数中使用,但问题是我使用鼠标进行旋转widget_2。因此,当我从第二个 QMainWindow 移动到第一个时,鼠标在第一个中被很好地捕获,但它会自动旋转 3D 场景而无需按下左键。

我也尝试过enterEvent这种方式(Ui_MainWindow 是第一个 QMainWindow 的 QObject):

完成的旋转widget_2以这种方式在另一个文件(GLWidget.cpp)中实现:

目前,当我在第二个 QMainWindow 并加载参数然后移动到第一个时,我必须单击左键来旋转 3D 场景并能够按下按钮。

我希望焦点跟随鼠标,即当我结束时widget_2,焦点在widget_2不与已经实现的鼠标旋转功能冲突,并且当我在菜单上时,我不需要单击两次按钮。

我怎么能得到它?

0 投票
1 回答
2566 浏览

qt - 为什么从不同的类调用时我的主窗口会自动关闭?

我似乎无法弄清楚出了什么问题,所以我在这里问你。我制作了一个名为 BOBSNetworkSessionManager 的简单类,定义如下。它是一个继承 QOBject 的简单类,因此我可以使用信号和插槽,但它没有对话框或与之关联的任何类型的窗口。它最终会调用一个登录对话框并使用凭据连接到我创建的 tcp 服务器。这个类作为一个层来管理程序的连接状态,因为它只有在连接到服务器时才能正常运行,并且由于 pci 合规性而在 15 分钟内使用而不会中断。如果这些条件不成立,该类将锁定窗口并强制重新登录。截至目前,我只是尝试任意打开主窗口,就好像凭据已经通过并且我已连接到服务器一样。问题是当我打开主窗口时它会立即消失。我似乎无法弄清楚它为什么会消失。我已经包含了我的所有文件。

BOBSDCNetworkSessionManager .h 头文件


BOBSDCNetworkSessionManager 实现 .cpp 文件


Main.cpp 文件