Qt一步一步实现插件通信(附源码)

前一章已经实现了主程序调用加载插件功能,这一章描述主程序和插件间通信功能

说道Qt的通信必须要了解信号和槽的机制原理,这里不做论述,不清楚的同学去看看信号和槽机制

不废话直接上步骤,在上一章的基础下进行修改

第一步:在插件中定义一个接收槽

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "mainwidget.h"
#include "ui_mainwidget.h"
#include "qtimer.h"
#include "qdatetime.h"
mainwidget::mainwidget(QWidget *parent) :
     QWidget(parent),
     ui( new  Ui::mainwidget)
{
     ui->setupUi( this );
     timer =  new  QTimer( this );
     //新建定时器
     connect(timer,SIGNAL(timeout()), this ,SLOT(timerUpDate()));
     //关联定时器计满信号和相应的槽函数
     timer->start(1000);
}
 
mainwidget::~mainwidget()
{
     delete  ui;
}
void  mainwidget::timerUpDate()
{
     QDateTime  time  = QDateTime::currentDateTime(); //获取系统现在的时间
     QString str =  time .toString( "yyyy-MM-dd hh:mm:ss ddd" );  //设置显示格式
     QString strr= strr.fromLocal8Bit( "当前时间:" )+str; //调用中文显示
     ui->label->setText(strr);
}
 
void  mainwidget::time_start()
{
     timer->start();
     ui->label->setText( "start" );
}
void  mainwidget::time_stop()
{
     timer->stop();
     ui->label->setText( "stop" );
}

第二步 生成插件

这一步和上一章内容不变,替换要实现的插件的内容即可

点击运行生成插件,找到插件testpluginplugin.dll

复制粘贴到主程序的程序运行目录下

第三步 主程序加载插件并设置信号槽

1
2
connect(ui->action,SIGNAL(triggered()), testwidget,SLOT(time_start()));
connect(ui->action_2,SIGNAL(triggered()),testwidget,SLOT(time_stop()));

效果图:

1)加载插件成功后默认时间是不断刷新

2)点击停止后时间显示stop

3)点击开始,时间继续刷新

这里就完成了主界面操作插件的功能

 源码下载http://download.csdn.net/detail/huangyuancao/6654197

 



from:http://www.cnblogs.com/newstart/p/3457072.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值