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();
}

添加图片资源,可以参照教程

如下图,应该是没有问题的。

但是,运行后无法加载。

时间: 2024-08-09 23:46:02

Qt——添加动作的相关文章

qt 添加本程序的注册表项

QStringcmd;cmd.clear();QStringapplication_path=QCoreApplication::applicationFilePath();//带文件扩展名的全路径application_path.replace("/","\\");QStringregPath="HKEY_CLASSES_ROOT\\software_name\\shell\\open\\command\\";QSettings *progra

qt 添加程序插件目录

QApplication::addLibraryPath(QApplication::applicationDirPath());QApplication::addLibraryPath(QApplication::applicationDirPath()+"/plugins/");qt 添加程序插件目录

cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环&amp;主角添加动作

这一步当中,我们主要完成以下功能: 1.地图的无限滚动---让主角看起来真的是在跑动 2.给主角添加Jump跳跃和crouch下蹲动作 那么首先来让背景滚动起来,在PlayScene.h中添加: //初始化背景 void initBG(); //用update函数让地图滚动 virtual void update(float dt); //背景精灵 cocos2d::Sprite* bgSprite1; cocos2d::Sprite* bgSprite2; cocos2d::Sprite* g

Qt Widgets——动作类与小部件菜单项

本文主要涉及以下三个类: QAction ——QWidgetAction QActionGroup QAction可称为动作类,它一般可当作菜单中的项组成菜单,也可作为工具栏上的按钮,它主要由图标.文本及快捷键三部分组成.QActionGroup用于将QAction分组,设置组内各QAction的互斥性质(exclusive ),设置后,组内的动作,在外观上形成多选框(不互斥)或单选框(互斥).QWidgetAction继承自QAction,它可将自定义的小部件插入到菜单项中,用于QSystem

Qt添加窗口背景图片、Label图片显示、、Label文字显示

一.添加窗口背景图片 重写MainWindow绘制事件 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.drawPixmap(0,0,width(),height(),QPixmap("background.png")); qDebug()<<event; }记得在头文件中声明函数. 二.图片显示 QPixmap car("Car.png"

Qt:添加点击事件的Label并显示图片

1.给label添加点击事件 Qt中原本的label是没有点击事件的,如果想添加点击事件的话,可以继承QLabel类并重载鼠标事件(比如mousePressedEvent),然后在鼠标事件中发送一个信号,具体如下: // clicklabel.h #ifndef CLICKEDLABEL_H #define CLICKEDLABEL_H #include <QWidget> #include <QLabel> class ClickedLabel : public QLabel {

QT添加程序图标及窗口图标

程序图标 材料准备 图标文件:*.ico文件,存放在源文件同一目录下,如"myapp.ico" 写入图标 向*.pro文件中,独立一行写入"RC_ICONS = *.ico",如RC_ICONS = "myapp.ico" 生成程序 运行程序,即可在程序目录下看到带有图标的软件 PS:还有一种使用rc文件的方法,有一篇博文写的挺详尽的了,此处不再累赘,可参考Qt笔记——三步设置Qt应用程序图标. 更多程序图标添加方式,可在帮助中输入"S

Qt添加驱动——Qt数据库之添加MySQL驱动插件

Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一下怎样在Qt Creator中添加数据库驱动插件.在讲述之前,我们先看一下Qt Creator中数据库的插件到底放在哪里. 我们进入Qt Creator的安装目录,然后进入相对应的文件夹下,比方我这里是 D:Qt2010.02.1qtpluginssqldrivers 在这里我们可以看见几个文件,如

QT 添加 lib库

扒自网友文章: 一.添加第三方的头文件 首先,添加头文件  #include "ControlCAN.h" 然后,再将这个头文件放到工程的目录下 二.添加.lib文件 首先,将.lib文件放到对应的工程目录下(当然,放到其他路径也可以). 但是,仅仅做这一步是不行的,工程不会主动去包含这个.lib文件,你必须告诉他,lib文件在哪里,才可以. 所以,我们要做的,就是在.pro文件中,加上一句话,告诉工程,.lib在哪里 LIBS += -LE:/project/QT/usbcan_in