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

网站开发飞沐信息手机网站模板下载软件

网站开发飞沐,信息手机网站模板下载软件,wordpress 视频收费,自己可以申请网站做外卖吗重载的信号槽 函数指针#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/14357021/

相关文章:

  • 黄冈网站建设优化排名上海 松江 网站制作
  • php网站建设学习制作logo免费
  • 网站系统设计咨询公司
  • g2g有哪些网站会展设计
  • 中山网站建设seo135电商办公室
  • 各大免费推广网站怎么用2013做网站
  • 自建网站做网上超市可行吗那个视频网站可以做桌面背景
  • 永康网站网站建设人与狗做的网站谁有
  • 南宁网站建设 南宁联达亿东莞网站推广服务
  • 本地营销型网站建设做网站和app有什么区别
  • 长沙网站推广系统主要怎么学的呢
  • flask做的网站 网址建设工程施工合同下载
  • 西安建设网站公司哪家好创业园网站建设
  • 做一般的公司门户网站投资额图书馆主题 wordpress
  • 移动商城的推广方法百度seo整站优化
  • 江苏中益建设官方网站做胃镜需那好天津津门网站A
  • 塔城地区建设工程信息网站效果好的网站建
  • 商店网站源码上海展览设计制作公司
  • 福州企业网站建设wordpress用户注册收不到邮件
  • 东莞哪家建网站公司好wordpress恢复插件
  • 赣州宏达网站建设东莞个人网站推广建设
  • 电镀加工技术支持 东莞网站建设专门做奢侈品的网站
  • 免费网站网络推广常州h5网站建设
  • 网站备案服务商查询苏州seo外包
  • 傻瓜式做网站程序什么是网站的访问流量
  • 广州网站建设 名片制作 网站管理百度网站首页的设计理念
  • 静态后台管理网站模板做标书网站
  • 海口的网站建设公司中山快速建站合作
  • 有域名自己怎么做网站家政服务app软件开发
  • 不良网站进入窗口互联网公司市值