Qt5—qobject_cast<QAction *>(sender())应用 [2013-11-19整理]
来源:互联网 发布:现货农产品分析软件 编辑:程序博客网 时间:2024/06/11 06:01
可以利用qobject_cast<QAction *>(sender())获得信号发送者的对象,实现差异化处理
头文件
class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = 0); ~MainWindow();private slots: void viewChanged();private: void createActions(); void initMenus(); void initTools(); QAction *dataView; QAction *pixView; QAction *configView;};
关键代码
voidMainWindow::createActions() { dataView = new QAction(tr("数据视图"), this); connect(dataView, SIGNAL(triggered()), this, SLOT(viewChanged())); pixView = new QAction(tr("曲线视图"), this); connect(pixView, SIGNAL(triggered()), this, SLOT(viewChanged())); configView = new QAction(tr("配置视图"), this); connect(configView, SIGNAL(triggered()), this, SLOT(viewChanged()));}voidMainWindow::initMenus() { QMenu *menus = menuBar()->addMenu(tr("menus")); menus->addAction(dataView); menus->addSeparator(); menus->addAction(pixView); menus->addSeparator(); menus->addAction(configView);}voidMainWindow::initTools() { QToolBar *tools = addToolBar(tr("tools")); tools->addAction(dataView); tools->addSeparator(); tools->addAction(pixView); tools->addSeparator(); tools->addAction(configView);}voidMainWindow::viewChanged() { QAction *act = qobject_cast<QAction *>(sender()); if (act == dataView) { qDebug() << "dataView"; }else if (act == pixView) { qDebug() << "pixView"; } else { qDebug() << "configView"; }}
应用,可以巧妙利用该特性实现主窗口的堆栈式渲染效果
- Qt5—qobject_cast<QAction *>(sender())应用 [2013-11-19整理]
- qobject_cast<QPushButton *>(sender())用法
- qobject_cast<QPushButton *>( sender() ) 用法介绍
- Qt: qobject_cast<QPushButton*>(sender()) 简化信号与槽的编写
- Qt: qobject_cast<QPushButton*>(sender()) 简化信号与槽的编写
- Qt5—可停靠窗口QDockWidget [2013-10-19整理]
- qobject_cast
- qobject_cast
- QAction
- QAction
- QAction
- QAction
- QAction
- QAction
- Qt5官方Demo解析集2——Multicast Sender/Receiverz
- Qt5官方Demo解析集3——Broadcast Sender/Receiver
- Qt5官方Demo解析集2——Multicast Sender/Receiverz
- Qt信号与槽之查看信号来源qobject_cast<类型*>(sender())
- android静默安装apk已经成功实现
- java学习之路---线程(重点)
- 设计模式Strategy
- Java学习笔记-----集合Map
- Redis实战《红丸出品》2.1 Redis数据类型及操作前言
- Qt5—qobject_cast<QAction *>(sender())应用 [2013-11-19整理]
- Android 静默安装/后台安装
- 原型对象与继承
- Glib中Gquark浅析
- 基于Web-Harvest抓取
- 快速排序
- Android之断点续传下载
- 翻译 Netty 4 开发人员指导-User Guide(1)
- 坚持自己的坚持,以不二的姿态坚持到底