QAction学习

Qt大类的层次:

QObject-》QWidget-》QMainWindow

QObject-》QWidget-》QDialog

QAction的操作是在QMainWindow上

可以将QAction 添加到QMenu上,也可以添加到QToolBar上。

如果添加到QMenu(菜单)上就会显示成一个菜单项,如果添加到QToolBar(工具条)上,就会显示成一个按钮

QAction类保存有关这个动作的信息,比如他的文本描述、图标、快捷键、回调函数等 。

下面举例子说明如何使用QAction

一、自身属性的设置

1、构造函数:

newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this);

2、设置快捷键:

newAct->setShortcuts(QKeySequence::New);

3、设置状态提示信息,会在状态栏中显示出来

newAct->setStatusTip(tr("Create a new file"));

4、连接信号与槽:

connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));

二、完成槽函数:

void MainWindow::newFile()

{

if (maybeSave()) {

textEdit->clear();

setCurrentFile("");

}

}

三、添加到菜单中:

fileMenu->addAction(newAct);

这里fileMenu是一个QMenu对象

四、添加到工具条中:

fileToolBar->addAction(newAct);

这里fileToolBar是一个QToolBar对象。

这样这个newAct就能工作了。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

那么刚才说的菜单、工具条、状态栏是怎么设置的呢?

一、菜单栏的设置:

QMenu *fileMenu;

1、添加菜单

fileMenu = menuBar()->addMenu(tr("&file"));

2、添加QAction作为菜单项:

fileMenu->addAction(newAct);

二、工具栏的设置

QToolBar *fileToolBar;

1、添加工具栏:

fileToolBar = addToolBar(tr("File"));

2、添加QAction作为工具栏项:

fileToolBar->addAction(newAct);

时间: 2024-10-28 17:21:41

QAction学习的相关文章

QT学习一:菜单

// 创建菜单1 QMenu *fileMenu = new QMenu(tr("&File"),this); QAction *newAction = new QAction(tr("&New"),this); fileMenu->addAction(newAction); QMenuBar *menuBar = new QMenuBar(this); menuBar->addMenu(fileMenu); connect(newAct

学习pyqt4 基础 2

学习pyqt4 基础 2 回顾 之前有句话这么说:QWidget 部件是PyQt4 中所有用户界面类的父类. 突然想起,在上节中,或许会碰到中文乱码问题,在字符串前面加上u,表示unicode(具体原理也不清楚).解决办法:比如 u'你好'. 在下面的例子中有体现. 主窗口 QMainWindow类用来创建应用程序的主窗口.通过该类,我们可以创建一个包含状态栏,工具栏和菜单栏的经(老)典(套)应用程序框架.(虽老套,但基础还是要尽量牢固) 状态栏 #! /usr/bin/python # -*-

qml基础学习(一) 基础概念

一.概括 学习qt已有2年多的时间,从qt4.7开始使用直到现在正在使用的qt5.6,基本都在windows机器上做开发.最近有意向看了下qt的qml部分,觉着还是挺不错的,毕竟可以做嵌入式移动端产品的部分,还是值的一学.后来在网上看了一些资料,算是初步了解了下qml,所以想就自己学习的过程做以记录,也方便自己理解,如果你有机会看到这篇文章,那么我认为你也是来学习qml的,如果你已经是一个有很强qml开发经验的老手,那么这篇文章和接下来的qml学习系列的文章你都不用看下去了,呵呵... 关于qm

pyqt 托盘例子学习

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * from tp import Ui_Form import sys from PyQt4.QtCore import Qt QTextCodec.setCodecForTr(QTextCodec.codecForNa

QT基础学习笔记

Qt简介:1991, 挪威奇趣科技Trolltech开发的跨平台c++图形用户界面(GUI)应用程序开发.2008,被诺基亚收购2012,转让给芬兰的Digia公司. 商业版:专业版,企业版: // 开源版(GNU) 优势:1.跨平台 2.面向对象 3.丰富API 类库  4.可视化编程 5,时间驱动机制 JAVA--compile once, run anywhere    一次编译,到处运行Qt-- wrire once ,comile anywhere     一次编写,到处编译 桌面操作

PyQt5 控件学习(一个一个学习之QToolButton)

QToolButton 的继承图: QToolButton 之描述: 一个主窗口,我们一般分为 从上到下,标题栏 ,菜单栏(文字) ,工具栏(一般都是图标,没文字),工作区,状态栏. 我们这里说的是工具栏 QToolButton 之继承: 它继承自QAbstractButton ! QToolButton 之功能作用: 1 from PyQt5.Qt import * #刚开始学习可以这样一下导入 2 import sys 3 #1,创建app 4 app = QApplication(sys.

vnpy源码阅读学习(3):学习vnpy的界面的实现

学习vnpy的界面的实现 通过简单的学习了PyQt5的一些代码以后,我们基本上可以理解PyQt的一些用法,下面让我们来先研究下vnpy的UI部分的代码. 首先回到上一节看到的run.py(/vnpy/example/trade/run.py)的关于UI部分的代码. 生成QApplication部分 qapp = create_qapp() 我们跟踪得到 create_qapp() 方法是写在 "/vnpy/trader/ui/init.py"上面的. init.py主要是把一个文件夹变

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

Java多线程学习(吐血超详细总结)

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 目录(?)[-] 一扩展javalangThread类 二实现javalangRunnable接口 三Thread和Runnable的区别 四线程状态转换 五线程调度 六常用函数说明 使用方式 为什么要用join方法 七常见线程名词解释 八线程同步 九线程数据传递 本文主要讲了java中多线程的使用方法.线程同步.线程数据传递.线程状态及相应的一些线程函数用法.概述等. 首先讲一下进程和线程