首页 > 代码库 > Qt——添加动作
Qt——添加动作
教程:https://www.devbean.net/2012/08/qt-study-road-2-action/
运行教程中的第一个程序,报错如下:
原因:没有将main.cpp改为教程中的代码。见http://www.xuebuyuan.com/2029333.html
然后根据教程,代码如下:
//mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); private: void open(); QAction *openAction; }; #endif // MAINWINDOW_H
//mainwindow.cpp #include <QAction> #include <QMenuBar> #include <QMessageBox> #include <QStatusBar> #include <QToolBar> #include "mainwindow.h" //说明MainWindow构造函数前需要调用QMainWindow的含参构造函数 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle(tr("Main Window")); //openAction构造函数,传入一个图标、一个文本和this指针 openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this); //定义QAction的快捷键 openAction->setShortcuts(QKeySequence::Open); //鼠标置于图标上 出现提示 openAction->setStatusTip(tr("Open an existing file")); connect(openAction, &QAction::triggered, this, &MainWindow::open); //向菜单栏添加File菜单项 并将QAction对象添加到这个菜单 QMenu *file = menuBar()->addMenu(tr("&File")); file->addAction(openAction); //增加一个File工具栏 把QAction对象添加到这个工具栏 QToolBar *toolBar = addToolBar(tr("&File")); toolBar->addAction(openAction); //状态栏 位于底部 statusBar() ; } MainWindow::~MainWindow() { } void MainWindow::open() { QMessageBox::information(this, tr("Information"), tr("Open")); }
//main.cpp #include "mainwindow.h" #include <QApplication> #include <QPushButton> #include <QDebug> #include <QHBoxLayout> int main(int argc, char *argv[]) { //QCoreApplication app(argc, argv); QApplication app(argc,argv); MainWindow w; w.show(); return app.exec(); }
添加图片资源,可以参照教程。
如下图,应该是没有问题的。
但是,运行后无法加载。
Qt——添加动作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。