标签:菜单 key cut enc orm set debug tle qwidget
教程: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(); }
添加图片资源,可以参照教程。
如下图,应该是没有问题的。
但是,运行后无法加载。
标签:菜单 key cut enc orm set debug tle qwidget
原文地址:http://www.cnblogs.com/farewell-farewell/p/7172945.html