问题标签 [qmenubar]

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 投票
4 回答
15422 浏览

c++ - Qt在QMainWindow中添加menuBar、菜单和子菜单

我很难以编程方式将菜单栏、菜单和子菜单添加到 Qt QMainWindow。

以下代码会产生错误:

QWidget::setLayout: 试图在 QMainWindow "" 上设置 QLayout "",它已经有一个布局

注意: *.主窗口没有任何菜单或布局(空!)

0 投票
1 回答
1106 浏览

python - menuBar.addAction 改变文字

我正在使用 python QtGui。

当我想更改文本时,我得到了错误。

这是我的代码:

我应该如何更改文本?

谢谢

编辑:对不起,这是 QtGui.QMainWindow ...不是 Tkinter

0 投票
1 回答
999 浏览

qt - Qt 样式表:设置特定的 QMenuBar::item 背景颜色

例如,我有QMenuBar两个QMenu项目。

在此处输入图像描述

例如,我怎样才能只使“地板”项目为蓝色?我知道如何为所有项目更改它:

但我找不到为特定项目着色的方法。我尝试使用setPropertyon Qmenu,尝试使用setPalette,... 我发现没有任何效果。QMenuBar::item有没有办法在 C++ 代码中设置特定属性?

0 投票
0 回答
186 浏览

qt - 在 QT-5.7.0 的 QMenu 上检测到 Valgring 问题

创建一个顶部只有一个 QMenuBar 的简单程序,我设法让 Valgring GBD 检测到一个问题。

这是我的程序

主.cpp:

主窗口.cpp:

当我使用“带有 GBD 的 Valgrind 内存分析器”启动时,单击操作“test1”或“test2”时,检测到以下错误:

==31965== 系统调用参数 writev(vector[...]) 指向未初始化的字节 ==31965== 在 0x6BE040D: ??? (syscall-template.S:84) ==31965== by 0xBF97F28: ??? (在 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 中)==31965== 由 0xBF9831C:???(在 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 中)==31965== 由 0xBF98A76:???(在 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 中)==31965== 通过 0xBF98C43:xcb_flush(在 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 ) ==31965== by 0xD573C2F: QXcbWindow::hide() (在 /home/lmartin/Qt/5.7/gcc_64/lib/libQt5XcbQpa.so.5.7.0) ==31965== by 0x578BE64: QWindow::setVisible (bool) (在 /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Gui.so.5.7.0) ==31965== by 0x4FC866E: QWidgetPrivate::hide_sys() (在 /home/lmartin/Qt/5.7 /gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4FCE7AC: QWidgetPrivate:: hide_helper() (在 /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4FD37E7: QWidget::setVisible(bool) (在 /home/lmartin/Qt/ 5.7/gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4FCEAE7: QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) (在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so .5.7.0) ==31965== 由 0x50F3E3A: ??? (在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0)==31965== 0x50F47DE:???(在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0)==31965== 0x50F4AEB:???(在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0)==31965== by 0x50F87C5:QMenu::mouseReleaseEvent(QMouseEvent*)(在/home/lmartin/Qt/5.7/ gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4FD3B77: QWidget::event(QEvent*) (在 /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7. 0) ==31965== by 0x50F91CA: QMenu::event(QEvent*) (in /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4F8E52B: QApplicationPrivate ::notify_helper(QObject*, QEvent*) (in /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4F95807: QApplication::notify(QObject*, QEvent *) (在 /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x60A2ADF: QCoreApplication::notifyInternal2(QObject*, QEvent*) (在 /home/lmartin /Qt/5.7/gcc_64/lib/libQt5Core.so.5.7.0) ==31965== by 0x4F947BE: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) (在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0)==31965== 0x4FEF5FA:???(在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0)==31965== 0x4FF1512:???(在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0)==31965== by 0x4F8E52B:QApplicationPrivate::notify_helper(QObject*, QEvent*) (在/home/lmartin/Qt /5.7/gcc_64/lib/libQt5Widgets.so.5.7.0) ==31965== by 0x4F9521F: QApplication::notify(QObject*, QEvent*) (在/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets .so.5.7.0) ==31965== 地址 0xcc97941 在大小为 21,152 的块内是 4,545 个字节,分配 ==31965== 在 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.所以)==31965== 通过 0xBF978DB:xcb_connect_to_fd(在 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)==31965== 通过 0xBF9B610:xcb_connect_to_display_with_auth_info(在 /usr/lib/x86_64- linux-gnu/libxcb.so.1.1.0) ==31965== by 0xB872809: _XConnectXCB (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==31965== by 0xB863391: XOpenDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==31965== by 0xD55F095: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in / home/lmartin/Qt/5.7/gcc_64/lib/libQt5XcbQpa.so.5.7.0) ==31965== by 0xD562AEA: QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**) (在 /home/lmartin/Qt /5.7/gcc_64/lib/libQt5XcbQpa.so.5.7.0) ==31965== by 0xD31D3EA: ??? (在/home/lmartin/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so)==31965== by 0x577041A:QPlatformIntegrationFactory::create(QString const&, QStringList const&, int&, char**, QString const&) (在 /home/lmartin/Qt/5.7/gcc_64/lib/libQt5Gui.so.5.7.0) ==31965== by 0x577D483: QGuiApplicationPrivate::createPlatformIntegration() (在 /home/lmartin/Qt/5.7/gcc_64/lib /libQt5Gui.so.5.7。
obj:/lib/x86_64-linux-gnu/libc-2.23.so
obj:/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
obj:/usr/lib/x86_64-linux-gnu/libxcb .so.1.1.0
obj:/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 fun:xcb_flush
fun:_ZN10QXcbWindow4hideEv fun:_ZN7QWindow10setVisibleEb
fun:_ZN14QWidgetPrivate8hide_sysEv
fun:_ZN14QWidgetPrivate11hide_helperEv
fun:_ZN7QWidget10setVisibleEb
fun:_ZN14QWidgetPrivate12close_helperENS_9CloseModeE
obj:/ home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0
obj:/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0
obj:/home/lmartin/Qt/ 5.7/gcc_64/lib/libQt5Widgets.so.5.7.0
乐趣:_ZN5QMenu17mouseReleaseEventEP11QMouseEvent
fun:_ZN7QWidget5eventEP6QEvent fun:_ZN5QMenu5eventEP6QEvent
fun:_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent
fun:_ZN12QApplication6notifyEP7QObjectP6QEvent
fun:_ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent
fun:_ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_Eb obj:/home/lmartin/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5.7.0
obj:/home/lmartin/Qt/5.7 /gcc_64/lib/libQt5Widgets.so.5.7.0
fun:_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent }

我该如何着手解决这类问题?

0 投票
1 回答
451 浏览

python - 添加的 QMenu 未触发 QAction

我面临的问题是当我想将菜单栏的功能拆分为多个文件(类)时,每个文件都特定于处理选项(文件/帮助/编辑等)。

在主 UI 类中,我有:

在 MenuHelp(类)中:

菜单栏已正确显示,但从未调用过 handle_trigger 方法,关于我做错了什么有什么想法吗?

0 投票
1 回答
186 浏览

qt - 获取 QMenu 的 ActionRect 以绘制图像

我需要获取 QMenu 的 actionRect 以在不使用 Qt 样式表的情况下绘制选定的菜单项。提前致谢

0 投票
1 回答
838 浏览

python - 在 QMenuBar 中添加子菜单

我有一个简单的 GUIQWidget作为我的主类,我需要创建一个像这样的子菜单:

主类“QMainWindow”

当我尝试使用QMenuBar结果是这样的:

主类“QWidget”

如何创建像第一张图片一样的子菜单?QMainWindow如果我想要第一张图片那样的结果,我应该将我的主要课程更改为吗?

代码:

请帮忙。

0 投票
1 回答
1153 浏览

python - PyQt WebEngineView 干扰 MainMenu

我正在尝试创建一个包含 Web 浏览器的应用程序,但是当我添加 Web 浏览器时,我的菜单栏在视觉上消失了,但在功能上保持不变。以下是两张图片,一张显示注释掉的“self.centralWidget(self.web_widget)”,另一张允许该行运行。如果您运行示例代码,您还会看到虽然整个网页在视觉上看起来好像菜单栏不存在,但您必须在每个输入字段和按钮下方单击才能激活它,表现得好像菜单栏实际上是存在的。

Web Widget 已注释掉 在此处输入图像描述

网络小部件活动 在此处输入图像描述

示例代码

开发环境 Windows 10、PyQt5、pyqt5-5.9

编辑

该问题似乎与菜单栏没有直接关系。即使删除菜单栏,问题仍然存在。也就是说,从 showMaximized() 更改为 showFullScreen() 似乎确实可以解决问题。

0 投票
1 回答
422 浏览

python - 使用 for 循环将项目添加到菜单栏 - Pyqt5

我有一个名称列表,从该列表中,我想填充menubar我的QMainWindow. 下面的代码尝试:

这里的错误:

在此处输入图像描述

谢谢

0 投票
1 回答
627 浏览

python - PyQt5:主窗口显示没有任何小部件

我正在使用 PyQt5 创建我的应用程序。问题是我的窗口出现了,但没有任何小部件(即没有我的Main类,没有任何菜单、工具栏等) - 仍然是空的。我正在使用 Python-3.6 和 PyQt5,Windows 10 环境。

这是我的代码:

应用程序.py:

.views(主要)

我的模块family.views(我想在未来添加 .models,但一件接一件):

和我的模块specie.views

你可以看到下面的结果:

您可以在下面看到结果: