标签: qmenu

有没有办法使用Qt Designer定义带有按钮和弹出菜单的QToolbar?

我想在Qt中有一个包含QActions或QToolbarButtons的工具栏,它们附有弹出菜单.通过创建QMenu,将其添加到QToolbarButton然后将其添加到QToolbar,我已经能够在代码中完美地完成此操作.我的问题是,这应该可以在设计师中完全完成.

这是我通过代码完成的工作,我想在qt designer中定义按钮和菜单:
http://img402.imageshack.us/img402/7669/exmaple.png

我们想要用qt设计器做的是将代码与接口分开.例如,这意味着一个人可以设计表单的外观和组件,然后程序员可以采用它并编写其背后的功能.如果工具栏和菜单必须由程序员设计,我们无法非常有效地完成此任务.

对于许多应用程序来说,这似乎是一个相当常见的要求,我无法看到Qt如何强制在代码而不是设计器中完成此操作.

如果有人对如何做到有任何想法,也许我在Qt中遗漏了一些东西?

qt designer button qtoolbar qmenu

18
推荐指数
2
解决办法
2万
查看次数

如何在Qt中迭代菜单的操作?

我在一个项目中工作,我需要自动打开(显示或弹出)QMenuBar中的项目.

假设我有下一个菜单栏:

 File     Edit      Help
   -op1     -op1      -op1
   -op2     -op2      -op2
Run Code Online (Sandbox Code Playgroud)

要设置一个动作(显示与该动作相关的菜单),我使用:

menuBar->setActiveAction(mymenuactionpointer);
Run Code Online (Sandbox Code Playgroud)

据我所知,我可以使用以下其中一个来获取指向QMenuBar元素的指针列表:

QMenuBar::actions();
Run Code Online (Sandbox Code Playgroud)

要么

QList<Object*> lst1 = QMenuBar::findChildren<QObject*>();

QList<Object*> lst2 = QMenuBar::findChildren<QAction*>();
Run Code Online (Sandbox Code Playgroud)

当我使用QMenuBar::findChildren<QAction*>()或者MenuBar::actions()我在菜单栏中获得菜单列表时,我的意思是,我"File, Edit, Help"从我的QMenuBar获得,在这种情况下QList的大小是3.

当我使用时,QMenuBar::findChildren<QObject*>()我得到了一个大小为6的QObject列表,它是菜单栏中正确的项目数.但是,我已经尝试过演员QAction*

QAction *a = (QAction *)lst1.at(0);
QAction *a = qobject_cast<QAction*>(lst1.at(0));
QAction *a = dynamic_cast<QAction*>(lst1.at(0));
Run Code Online (Sandbox Code Playgroud)

在所有这些情况下a不是NULL,但是当我尝试获取动作名称时,QAction::title()它总是导致我的分段错误.

我一直在搜索,我发现获取菜单栏操作列表后,可以询问QAction::menu()(如果项目是菜单则返回有效的QMenu指针),以了解该项目是否为QMenu,如果是,则可以重复获取该菜单的操作列表,并继续迭代.但这对我不起作用,我期待这一点

QList<Object*> lst2 = QMenuBar::findChildren<QAction*>();
Run Code Online (Sandbox Code Playgroud)

每个元素"文件,编辑帮助" QAction::menu()返回一个有效的菜单指针,所以我可以得到每个菜单的动作列表,但这对我来说根本不起作用.

我非常感谢您的时间和帮助,我希望这个问题可以帮助更多人.我真的很难过.

提前致谢.

qt qmenu qmenubar

17
推荐指数
3
解决办法
2万
查看次数

如何使qmenu项目可检查pyqt4 python

我怎样才能让我的qmenu可以检查?

from PyQt4 import QtGui

app = QtGui.QApplication([])

menu = QtGui.QMenu()

menu.addAction('50%')
menu.addAction('100%')
menu.addAction('200%')
menu.addAction('400%')
menu.show()

app.exec_()
Run Code Online (Sandbox Code Playgroud)

python pyqt4 qmenu

14
推荐指数
1
解决办法
1万
查看次数

如何将QActions列表添加到QMenu并使用单个插槽处理它们?

首先,我有一个QWidgets 列表,我不知道运行时的长度.然后我创建了一个QListWidget我显示它们的位置,当有人点击它们时,我使用信号currentItemChanged(QListWidgetItem*, QListWidgetItem*)来捕获它并获得被点击项目的索引.

现在我想做一个类似的事情QMenu.当QMenu它及其动作构建时我会知道列表,但是我将无法对其进行硬编码.

如何根据菜单列表中的操作位置(索引)创建操作,捕获信号并将它们连接到同一个插槽,这些插槽会执行不同的操作?必须有一些方法来解决这个问题,因为其他应用程序使用它.我试着看一下映射,但我无法理解如何使用它.

我试图抓住sender插槽,但无法从中获取任何有用的信息.

c++ qt slot qmenu

12
推荐指数
2
解决办法
1万
查看次数

添加图标后,QMenu项目文本消失

我正在尝试使用Qt Designer为我的QMenu添加一个图标,但是当我添加了图标时,我意识到我的文本消失了.我有什么方法可以在我的文字旁边显示我的图标吗?

c++ qt qtgui qt-designer qmenu

12
推荐指数
1
解决办法
1546
查看次数

有没有办法将QWidget添加到QtCreator中的QMenu

我创建一个文本编辑器,我想放QComboBoxQMenu.我没有在QMenu处理这样的事情中找到任何方法.最接近的是QMenu::addAction().我想知道绕过这个障碍.

谢谢!

c++ qt qwidget qmenu

10
推荐指数
1
解决办法
7925
查看次数

QTenu中QActions的QTooltip

我希望能够显示QMenu项目的工具提示QAction.我所取得的最好成绩就是将一个悬停的信号连接QAction到一个QTooltip节目:

connect(action, &QAction::hovered, [=]{
    QToolTip::showText(QCursor::pos(), text, this);
});
Run Code Online (Sandbox Code Playgroud)

问题是有时程序会将工具提示定位在菜单下方,特别是在更改菜单时.

有没有办法强制工具提示显示在顶部?

c++ qt tooltip qmenu qaction

10
推荐指数
2
解决办法
3501
查看次数

无法隐藏QMenu对象QMenu :: setVisible()?

我已经建立了QMenu MainMenu我的上顶MainWindow在我的应用程序.每个人都习惯了,我有以下QMenu主菜单:

文件 - 编辑 - SuperHeavyExpertMenus - 设置 - 帮助

我想SuperHeaverExpertMenus在程序启动时最初隐藏子树,因为它会包含很多设置,这可能会使初学者用户感到困惑.

例如,我想SuperHeavyExpertMenu在"设置"中的复选框为真时显示该子树.

我可以隐藏孩子QActions的的QMenu上述S,争夺QAction:setVisible(false).但我能做到这一点QMenu吗?

有没有办法隐藏QMenu

qt qmenu qt5 qaction qt5.3

10
推荐指数
1
解决办法
3222
查看次数

简单的颜色填充QIcons在Qt

我需要创建一个更改QWidget背景的菜单.我想将一个代表所选颜色的QIcon放入填充QMenu的QActions中.我不想弹出Photoshop并手动绘制图标.是否可以编写一个充满特定颜色的简单图标?这样我可以根据需要进行任意数量的QActions,而且我不需要在Photoshop中制作一大堆图标.\

c++ qt qmenu qicon

9
推荐指数
2
解决办法
1万
查看次数

Qt UI测试:如何使用QTest模拟QMenuBar项目上的点击?

我试图在QMenuBar上模拟鼠标点击QMenu项目,例如使用QTestLib框架单击"另存为"QAction.

我在Windows XP 32位和Qt 5.0.2下使用它.

有任何想法吗?

c++ qt qtestlib qmenu

9
推荐指数
2
解决办法
2940
查看次数

标签 统计

qmenu ×10

qt ×9

c++ ×6

qaction ×2

button ×1

designer ×1

pyqt4 ×1

python ×1

qicon ×1

qmenubar ×1

qt-designer ×1

qt5 ×1

qt5.3 ×1

qtestlib ×1

qtgui ×1

qtoolbar ×1

qwidget ×1

slot ×1

tooltip ×1