问题标签 [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 回答
6190 浏览

qt4 - 如何在 Qt(或 PyQt)中调用一个主窗口到另一个主窗口

在我的项目中,我创建了两个主窗口,我想从 mainwindow1(正在运行)调用 mainwindow2。在 mainwindow1 我已经使用了 app.exec_() (PyQt) 并显示 maindow2 我在按钮的单击事件中使用 maindow2.show() 但不显示任何内容

0 投票
3 回答
8630 浏览

pyqt4 - 在屏幕中间显示 QMainwindow

我想在屏幕中间显示我的项目主窗口。当我调用“self.show()”时,窗口显示在屏幕中间。

0 投票
1 回答
3861 浏览

qt4 - 如何从 QMainWindow 中删除/隐藏所有工具栏?

我有一个第三方 QMainWindow,我需要将它嵌入到我自己的 QMainWindow 中(即,将其用作普通小部件)。我知道这不是最佳做法(至少可以说),但我现在没有其他办法。

我需要隐藏第三方窗口的状态栏、菜单栏和工具栏。我能够删除状态栏 (setStatusBar(0)) 和菜单栏 (setMenuBar(0)),但我找不到对工具栏区域执行相同操作的方法

有什么方法可以隐藏/删除工具栏吗?

0 投票
3 回答
7562 浏览

qt - Qt4:将 QMainWindow 实例放在其他 QWidget/QMainWindow 中

我想将 QMainWindow 实例放在另一个 QWidget 中(例如另一个 QMainWindow 的 centralWidget)。

我想知道为什么它不起作用?QMainWindow 直接继承自 QWidget。将 QWidget 放在另一个 QWidget 中可以正常工作。

我经常将 QMainWindow 实例放在 QTabBar 中没有任何问题。

ps 你可能会问为什么我需要使用 QMainWindow ?我想使用垂直布局在 1 个表单中放置 2 个小部件。我希望两个小部件都直接在它们上面有单独的工具栏。

也许还有其他方法可以使用 QtCreator 在普通 QWidgets 中放置工具栏?


编辑

第一个例子(工作正常)

我基于 QWidget 创建新的类/表单。(QtCreator 基于标准模板创建 3 个文件 *.cpp、*.h 和 *.ui)。

类声明看起来像这样

当我尝试使用此小部件并将其放在另一个小部件中时,它工作正常。我使用了 qtcreator 的“提升到...”功能 - 这里没有问题。

第二个例子(不起作用)

我基于 QMainWindow 创建新的类/表单。(QtCreator 基于标准模板创建 3 个文件 *.cpp、*.h 和 *.ui)。

类声明如下所示:

现在,当我尝试将此小部件放在另一个小部件中时,它不可见。和以前一样,我使用了 qtcreator 的“提升到...”功能。

两个小部件(第一个基于 QWidget,第二个基于 QMainWindow)具有基于标准 qtcreator 代码模板的相同默认结构。我在这里没有做太多改变——只是在表单设计器中添加了一些按钮。

在第二个示例中,我尝试在类实例上使用 setEnabled(true) 和 setVisible(true)。第一个没有结果。第二个在单独的窗口中打开这个小部件。


我认为最大的问题是什么 probibits QMainWindow 嵌套在另一个 QWidget 中。正如我之前写的那样,QMainWindow 实例可以毫无问题地放置在 QTabWidgets 中。

0 投票
1 回答
168 浏览

python - 使用信号弹屏

我在使用信号来显示一个小屏幕时遇到了一点麻烦。缩短我到目前为止的所有内容,以下代码应该显示我的问题。

运行此程序时,会自动弹出“信息”窗口。但是...我只希望每次单击菜单中的“关于...”或使用分配的快捷方式时都会发生这种情况。

我如何改进我的代码,使我的问题成为历史?

问候!

0 投票
3 回答
2270 浏览

qt4 - QMainWindow - 使用 QGraphicsView 调整大小问题

在 Ubuntu 10.4 上使用 Qt 4.6

我的 MainWindow 中有一个 QGraphicsView 中央小部件。每次程序切换到新级别(推箱子游戏)时,我都希望 MainWindow 调整到新的视图大小。我主要通过将主窗口和视图的最大和最小宽度/高度设置为相同的值来实现这一点,这在大多数情况下都有效,但在某些较小的级别上,MainWindow 仅在一维上缩小,并留下白色边距一侧像这样:

我的推箱子游戏

在我单击视图之前,它一直保持这种状态,此时 MainWindow 缩小到视图。我可以在此之前输入击键来移动我的人并执行其他命令,并且边距将保持不变,只需单击鼠标即可缩小它。我想出了一个hackish修复

但这似乎很蹩脚,很可能不便携,尽管我不确定这个问题是否存在于其他平台上。有任何想法吗?

0 投票
3 回答
9255 浏览

c++ - 使 QMainWindow 只能水平调整大小 - 也就是说,宽度是可调整的,但高度是固定的

我可以制作一个带有网格布局的 QMainWindow 只在水平方向而不是垂直方向调整大小吗?

我希望它的垂直大小是保持所有按钮/行编辑所需的最小值。

0 投票
1 回答
1373 浏览

qt - QMainWindow 中更高效的中央小部件:QGLWidget VS QGraphicsView

我正在为我的应用程序使用 QMainWindow 并想做一些 openGL 渲染。2种方法:

1)将QGLWidget设置为中央小部件并在那里进行所有渲染,

或者

2)将QGraphicsView设置为中央小部件,将视口设置为我的QGLWidget以创建渲染上下文并在我的场景中进行渲染。

在效率方面,哪一个更可取?(稍后我将添加一些其他对象,在前一种情况下将是 QGLWidgets(作为子小部件),在后一种情况下是 QGaphicsItems)

0 投票
1 回答
1371 浏览

c++ - Qt WindowMaximize 不改变几何(C++)

因此,我将 Web 浏览器作为我的第一个 Qt 项目(惊喜!),我想知道为什么调用setWindowState(Qt::WindowMaximized)不会改变窗口几何形状。我有这个代码:

从 mainwindow.h:

从 mainwindow.cpp:

正如您可能知道的那样,我正在尝试在窗口最大化并且 QWebView 也最大化的情况下启动应用程序。基本上,每当调整主窗口的大小时,我也想调用ui->webView->setGeometry更新高度和宽度。但是MainWindow::geometry好像没有更新。我究竟做错了什么?

0 投票
2 回答
2570 浏览

python - 删除所有 DockWidgets 后如何调整 QMainWindow 的大小?

我正在尝试制作一个由 a 组成的应用程序QMainWindow,其中央小部件是 a QToolBar(它可能不常见,但出于我的目的,工具栏非常适合)。仅允许在下方停靠。我在其中添加了 a QDockWidget,并使用和QActionQToolBar切换打开QDockWidget和关闭。removeDockWidget()restoreDockWidget()

的默认大小QMainWindow是 800 x 24,QToolBar'smaximumHeight也设置为 24。在removeDockWidget()被调用之后,QMainWindow的几何图形被设置回(0,0,800,24)with setGeometry()

我想要实现的是在移除 'QMainWindow时将 ' 高度调整为 24 。DockWidget似乎工作,setGeometry()因为宽度和位置相应地改变,但有趣的是,高度并没有让步。这真的是我的问题:)

你觉得怎么回事?

这是一个屏幕截图,说明了手头的问题。

注意:如果我使用 QWidget 而不是 QMainWindow 创建相同的场景,并在子小部件上使用show()or hide(),那么我可以adjustSize()毫无问题地调整父级的大小:上面的问题似乎是 QMainWindow 特定的。