QT5知识点记录梳理(三)动作
来源:互联网 发布:linux vim装不上 编辑:程序博客网 时间:2024/06/06 00:15
一、QAction
一、QAction的例子
main.cpp
#include "test.h"#include <QtWidgets/QApplication>#include<qpushbutton.h>#include<qapplication.h>int main(int argc, char *argv[]){ QApplication app(argc, argv); TEST win; win.show(); return app.exec();}
test.h
#ifndef TEST_H#define TEST_H#include <QtWidgets/QMainWindow>#include "ui_test.h"class TEST : public QMainWindow{ Q_OBJECTpublic: TEST(QWidget *parent = 0); ~TEST();private: void open(); QAction *openAction;};#endif // TEST_H
test.cpp
#include "test.h"#include <QAction>#include <QMenuBar>#include <QMessageBox>#include <QStatusBar>#include <QToolBar>TEST::TEST(QWidget *parent) : QMainWindow(parent){ setWindowTitle(tr("First Main Window")); openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this); openAction->setShortcuts(QKeySequence::Open); openAction->setStatusTip(tr("Open an existing file")); connect(openAction, &QAction::triggered, this, &TEST::open);//当有triggered()信号发出时触发槽函数open() QMenu *file = menuBar()->addMenu(tr("&File")); file->addAction(openAction); QToolBar *toolBar = addToolBar(tr("&File")); toolBar->addAction(openAction); statusBar();}TEST::~TEST(){ }void TEST::open(){ QMessageBox::information(this, tr("Information"), tr("Open"));}
效果如图:
二、对于代码的解读
1)test.h
在test.h中我们声明了TEST类中:
a、私有函数open()
b、私有指针openAction,指向一个QAcion型数据
2)test.cpp
a、setWindowTitle() 设置title内容,tr()为规范化
b、QAction类的构造函数解析:
openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);
第一参数:图标
QIcon():输入为一个路径,函数找到了这里的 document-open.png 图标
第二参数:为action的名称
从效果图上能看出对应的位置,需要注意的是文本前的”&”符号,意味着有设定了快捷键,在紧接着调用的setShortcut()函数就是设置快捷键。
第三参数:this指针
c、other
menuBar()、toolBar()和statusBar()三个是QMainWindow的函数,用于创建并返回菜单栏、工具栏和状态栏。我们可以从代码清楚地看出,我们向菜单栏添加了一个 File 菜单,并且把这个QAction对象添加到这个菜单;同时新增加了一个 File 工具栏,也把QAction对象添加到了这个工具栏。我们可以看到,在菜单中,这个对象被显示成一个菜单项,在工具栏变成了一个按钮。至于状态栏,则是出现在窗口最下方,用于显示动作对象的提示信息的。
阅读全文
0 0
- QT5知识点记录梳理(三)动作
- QT5知识点记录梳理(一)
- QT5知识点记录梳理(二)
- 计算机组成原理知识点梳理(三)
- 面向对象知识点梳理(三)
- win32 线程知识点梳理三
- Java知识点梳理(一)
- Java知识点梳理(二)
- Qt5 text_Editor(三)
- 梳理shell编程遗忘的知识点笔记(三)
- JAVA基础知识点梳理三:流程控制语句
- Unity3D学习之(NGUI知识点梳理)
- Java知识点梳理系列(序)
- React知识点梳理(持续更新中)
- 计算机组成原理知识点梳理(一)
- 计算机组成原理知识点梳理(二)
- mybatis知识点总结和梳理(转载)
- JAVA基础知识梳理(三)
- 实现滚动文字广告
- 【RL笔记】基于tensorflow实现RL的policy based算法
- Android BuildConfig类
- 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次
- java多线程知识点
- QT5知识点记录梳理(三)动作
- bootstrap系列之十二输入框
- metasploit msf Failed to connect to the database解决方法
- Struts2拦截器的应用
- c#HashSet源码解析
- 关于变量的类型及存储剖析和大小端问题
- bootstrap系列之十三导航
- 欢迎使用CSDN-markdown编辑器
- 图解JAVA对象的创建过程