jjzjj

c++ - QMenu 中 QAction 的所有权

我正在使用Qt为应用程序构建一个基本的GUI,我有几个问题..所以我创建了GUI,它工作正常,我想我会检查一些东西..for(inti=0;iaddAction(act);connect(act,SIGNAL(triggered()),this,SLOT(slotHelpAbout()));menuBar()->addMenu(menu)->setText("Help");}menuBar()->clear();我使用QMainWindow类的QMenuBar并用QMenu填充它,它也用QAction填充,因为我将触发信号连接到几个插槽。这工作正常但是当我调用清除时它应该删除菜单/QM

c++ - 为什么这个插槽被调用两次?

我的问题是,当我单击QMenuBar中的某个项目时,相应的槽会被调用两次。我正在使用Qt4.8.1。我既没有使用QtDesigner也没有使用“自动连接”功能。这是我的代码片段:#include#include#includeclassMyWidget:publicQWidget{Q_OBJECTpublic:MyWidget(QWidget*parent=0):QWidget(parent){QMenuBar*menu=newQMenuBar(this);menu->addAction("Clickhere");menu->addAction("Orhere");connect(me

c++ - QAction : No such file or directory

我遇到了错误QAction:Nosuchfileordirectory当我尝试为插件(C++库模板)编译项目时。很奇怪,因为我的应用程序有一个项目,其中也包含此header并且没有错误。这可能是什么原因造成的? 最佳答案 对我来说,我有一些陈旧的moc_和ui_文件是在不同版本和配置的Qt下编译遗留下来的,所以删除它们解决了我的问题。rmmoc_*ui_**.o 关于c++-QAction:Nosuchfileordirectory,我们在StackOverflow上找到一个类似的问题:

c++ - 如何通过 QSignalMapper 或其他方式将 QString 从 QMenu 传递到 Qt 插槽

我有一个带有许多子菜单的QMenu。这些是动态创建的,即名称菜单来自数据库并在循环中创建。现在我想在单击菜单时触发相同的插槽triggered()或类似的,但我需要将QString菜单名称传递给插槽,以便我可以执行菜单特定的操作。我试过this即,将QAction*传递给触发事件并使用setData,但出现运行时错误。object::connect:NosuchsignalQAction::triggered(QAction*)for(intj=0;jaddAction(tr(c_name));//c_namethemenunamesubMenuAct->setData(ch_name

c++ - QT - QAction::eventFilter:不明确的快捷方式重载

在这里和其他类似qtcentre的地方搜索我看到这个问题已经出现但似乎无法让它工作。我有一个带有QSplitter的MainWindow小部件,它包含两个Pane小部件(从QFrame子类化)。每个Pane都有一个菜单栏,其中包含相同的相关QActions/Shortcuts。我已经尝试了ShortcutContexts与setShortcutContext()的所有组合。WindowShortcut和ApplicationShortcut上下文给出了预期的“不明确的快捷方式过载”。虽然WidgetShortcut和WidgetWithChildrenShortcut都什么都不做。如果

c++ - 带有自定义参数的 QAction

我想在点击动态创建的QAction时执行带参数的插槽,但是在QMenu中创建QAction时无法添加我的变量,默认的triggered()插槽无法传递。更清楚地说,我想实现这样的事情:connect(someAction,SIGNAL(triggered(MyClass*)),this,SLOT(execute(MyClass*));我怎样才能得到这个?我尝试创建自定义QAction,但我不知道如何将它添加到QMenu-没有像addAction(QAction)这样的函数。 最佳答案 您可以使用QAction::setData()函

Qt中QPushButton、QAction等信号clicked()和toggled()的区别及setCheckable()和setChecked()区别

在Qt中,QPushButton(按钮)有两个常用的信号:clicked()和toggled(boolchecked)。这两个信号在按钮的状态改变时都会发出,但是它们之间有一些重要的区别:clicked()信号:clicked()信号在按钮被点击(并且释放)后发出,不论按钮的状态是否发生改变。也就是说,无论按钮是从按下状态到抬起状态,还是从抬起状态到按下状态,只要点击了按钮,clicked()信号就会被发出。toggled(boolchecked)信号:toggled(boolchecked)信号在按钮的状态发生改变时发出。这个信号不仅会在按钮被点击后发出,还会在按钮的状态由按下变为抬起或者由

c++ - 编译时得到错误: 'QtGui/QAction' file not found #include <QtGui/QAction>

我刚刚安装了MacOSX10.8.3和QtCreator3、XCode和XCode命令行工具。我正在尝试编译一个在另一台计算机上运行的项目,但每次我去“全部构建”时,我都会得到error:'QtGui/QAction'filenotfound在#include我尝试在.pro文件中添加第二行和第三行,但没有帮助QT+=coreguiopenglCONFIG+=qtQT+=guiTARGET=BasicOpenGLTEMPLATE=app更新:我也试过这个.pro文件,但它没有用QT+=coreguiopenglQT+=widgetsTARGET=BasicOpenGLTEMPLATE=

使用QT C++编写一个带有菜单和工具条的文本编辑器

您好,这是必应。我可以帮您生成一段使用QTC++编写一个带有菜单和工具条的文本编辑器的代码,但是请注意,这只是我的创造性的输出,并不代表任何权威或专业的观点。如果您想要了解更多的相关知识,请自行搜索或咨询专家。以下是我的代码://假设有一个名为TextEdit的类,继承自QMainWindow,作为主窗口//假设有一个名为ui的Ui::TextEdit对象,用于设置界面#include#include#include#include#includeclassTextEdit:publicQMainWindow{Q_OBJECTpublic:TextEdit(QWidget*parent=nul

使用QT C++编写一个带有菜单和工具条的文本编辑器

您好,这是必应。我可以帮您生成一段使用QTC++编写一个带有菜单和工具条的文本编辑器的代码,但是请注意,这只是我的创造性的输出,并不代表任何权威或专业的观点。如果您想要了解更多的相关知识,请自行搜索或咨询专家。以下是我的代码://假设有一个名为TextEdit的类,继承自QMainWindow,作为主窗口//假设有一个名为ui的Ui::TextEdit对象,用于设置界面#include#include#include#include#includeclassTextEdit:publicQMainWindow{Q_OBJECTpublic:TextEdit(QWidget*parent=nul
12