当前位置: 首页 > news >正文

php 手机网站开发临沂网站建设选盛誉

php 手机网站开发,临沂网站建设选盛誉,创业平台排名,麻章网站开发公司重载的信号槽 函数指针#xff1a; int fun(int a,long b) int (*funp)(int, long) fun; 实现回调函数就需要函数指针 信号重载 派生类槽函数发送两个信号 派生类给父类发两个信号 void (SubWidget::*mysigsub)() SubWidget::sigSub;connect(subw,mysigsub,t…重载的信号槽 函数指针 int fun(int a,long b) int (*funp)(int, long) fun; 实现回调函数就需要函数指针 信号重载 派生类槽函数发送两个信号 派生类给父类发两个信号 void (SubWidget::*mysigsub)() SubWidget::sigSub;connect(subw,mysigsub,this,MainWidget::slotShowMe);void (SubWidget::*mysigsub1)(int,QString) SubWidget::sigSub;connect(subw,mysigsub1,this,MainWidget::slotSubMsg);void MainWidget::slotSubMsg(int number, QString str) {qDebug()numberstr; }既然QT4在函数重载这么好用为什么不用 自定义信号槽必须声明 拓展 一个信号可以和多个槽相连 如果是这种情况这些槽会一个接一个的被调用但是槽函数调用顺序是不确定的。像上面的例子可以将一个按钮点击信号连接到关闭窗口的槽函数同时也连接到学生请吃饭的槽函数点击按钮的时候可以看到关闭窗口的同时也学生请吃饭的log也打印出来。 多个信号可以连接到一个槽 只要任意一个信号发出这个槽就会被调用。如一个窗口多个按钮都可以关闭这个窗口。 一个信号可以连接到另外的一个信号 当第一个信号发出时第二个信号被发出。除此之外这种信号-信号的形式和信号-槽的形式没有什么区别。注意这里还是使用connect函数只是信号的接收者和槽函数换成另一个信号的发送者和信号函数。 //必须使用函数指针解决重载问题 void (SubWidget::*mysigsub)() SubWidget::sigSub; connect(bt2,QPushButton::pressed,this,mysigsub); 通过上面的函数也实现了最终结果 也就是第一个信号发出时第二个信号也被发出。槽函数可以使用lambda表达式 完整代码 mainwidget.cpp #include mainwidget.h #include QDebugMainWidget::MainWidget(QWidget *parent): QWidget(parent) {this-setFixedSize(400,400);this-setWindowTitle(QQ登陆);this-setWindowIcon(QIcon(/home/yangyu/DailyFILE/picture/52.jpg));b3 new QPushButton(登陆,this);b3-resize(80,40);b3-move(300,350);connect(b3,QPushButton::clicked,this,MainWidget::slotHideMe);void (SubWidget::*mysigsub)() SubWidget::sigSub;connect(subw,mysigsub,this,MainWidget::slotShowMe);void (SubWidget::*mysigsub1)(int,QString) SubWidget::sigSub;connect(subw,mysigsub1,this,MainWidget::slotSubMsg);b4 new QPushButton(注册,this);b4-resize(80,40);b4-move(20,350);connect(b4,QPushButton::clicked,this,MainWidget::slotHideMe_login);connect(logw,loginwidget::loginsignal,this,MainWidget::slotShowMe_login); }MainWidget::~MainWidget() {} void MainWidget::slotForMainWidget() {b2-setText(注销); } void MainWidget::slotHideMe() {//隐藏自己显示QQ邮箱this-hide();subw.show(); }void MainWidget::slotShowMe() {show();subw.hide(); } void MainWidget::slotHideMe_login() {//隐藏自己显示QQ邮箱this-hide();logw.show(); } void MainWidget::slotShowMe_login() {show();logw.hide(); } void MainWidget::slotSubMsg(int number, QString str) {qDebug()numberstr; } subwidget.cpp #include subwidget.hSubWidget::SubWidget(QWidget *parent) : QWidget(parent) { //相当于主窗口的一个子窗口bt1 new QPushButton(this);bt1-setText(确认);bt1-resize(0,350);bt2 new QPushButton(this);bt2-setText(退出);bt2-resize(80,40);bt2-move(300,350);this-setWindowTitle(QQ邮箱);this-setFixedSize(400,400);this-setWindowIcon(QIcon(/home/yangyu/DailyFILE/picture/58.jpg));connect(bt2,QPushButton::pressed,this,SubWidget::MySlot);} SubWidget::~SubWidget() {} void SubWidget::MySlot() {//隐藏自己显示QQ邮箱emit sigSub();//发送信号emit sigSub(520,666);//发送信号 } subwidget.h #ifndef SUBWIDGET_H #define SUBWIDGET_H#include QWidget #include QPushButtonclass SubWidget : public QWidget {Q_OBJECT public:explicit SubWidget(QWidget *parent nullptr);~SubWidget();signals:void sigSub();void sigSub(int num,QString str);public slots://自定义槽函数void MySlot();//void MySlot1(); private:QPushButton *bt1;//确认QPushButton *bt2;//退出隐藏自己显示QQ登陆 };#endif // SUBWIDGET_Hmainwidget.cpp #ifndef MAINWIDGET_H #define MAINWIDGET_H#include QWidget #include QPushButton #include subwidget.h #include loginwidget.hclass MainWidget : public QWidget {Q_OBJECTpublic:MainWidget(QWidget *parent 0);~MainWidget();//自定义槽函数void slotForMainWidget();void slotHideMe();void slotShowMe();void slotHideMe_login();void slotShowMe_login();void slotSubMsg(int number,QString str); private:QPushButton* b1;QPushButton* b2;QPushButton* b3;//登陆隐藏自己显示QQ邮箱QPushButton* b4;//注册隐藏自己显示QQ注册SubWidget subw;loginwidget logw; };#endif // MAINWIDGET_Hloginwidget.cpp #include loginwidget.hloginwidget::loginwidget(QWidget *parent) : QWidget(parent) {bt1 new QPushButton(this);bt1-resize(80,40);bt1-setText(返回);bt1-move(300,350);this-setWindowTitle(QQ注册);this-setFixedSize(400,400);connect(bt1,QPushButton::pressed,this,loginwidget::loginslots);this-setWindowIcon(QIcon(/home/yangyu/DailyFILE/picture/50.jpg));} void loginwidget::loginslots() {emit loginsignal();//发送自定义信号 } loginwidget.h #ifndef LOGINWIDGET_H #define LOGINWIDGET_H#include QWidget #include QPushButton class loginwidget : public QWidget {Q_OBJECT public:explicit loginwidget(QWidget *parent nullptr);signals://自定义信号void loginsignal();public slots://自定义槽函数void loginslots();private:QPushButton *bt1;//上一页 };#endif // LOGINWIDGET_H 最终效果 槽函数做lambda表达式 不需要考虑太多按照下面写 connect(b3,QPushButton::clicked,this,[](){b4-setText(lambda);});如果槽函数很复杂那就建议使用槽函数。 如果比较简单可以使用lambda表达式
http://www.hkea.cn/news/14370314/

相关文章:

  • 网站建设中的矢量图标wordpress setup-config.php空白
  • 南阳网站改版深圳勘察设计协会网站
  • 网站建设佰首选金手指十捕鱼网站建设
  • 网站查询域名ip解析福州百度关键词排名
  • 1 建设网站目的是什么如何编写网站开发文档
  • 网页制作素材网站推荐西宁做网站制作的公司
  • 用dw做的网站怎么发布到网上职业培训机构排名前十
  • 教学网站开发源码搬瓦工 wordpress
  • 空壳网站主体注销中山比好的做网站的公司
  • 青岛网站建设软件做网站怎么
  • p站关键词排名网站建设 报价单
  • 网站后台多附件上传网站建设书籍免费
  • ps制作个人网站广州市手机网站建设公司
  • 湛江建设局网站wordpress改地址后打不开
  • 医院网站域名备案哈尔滨免费网站制作
  • 有趣的网站知乎建设部网站一级建造师
  • 昌邑做网站的公司河南省网站制作公司
  • 上海专业网站建设网深圳松岗 网站建设
  • 网站建设信息介绍扫码员在哪个网站可以做
  • 怎么建设小说网站seogw
  • 建设网站说只给前端源码是什么意思wordpress 首页加载延迟
  • 个人网站如何做即时支付WordPress设置API
  • 株洲网站建设服务公司手机网站如何排版
  • 餐饮手机微网站怎么做深圳布吉做网站
  • html网站开发工具下载高端品牌女装连衣裙
  • 怎样建设淘宝网站如何制作小程序赚钱
  • 创建网站的费用台州免费建站
  • 网站备案产品信息错误青岛做网站建设的公司
  • 网站备案 快速wordpress register_setting
  • 网站开发怎么用自己的电脑福州网站建设找时时在网络