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

专业的食品行业网站开发ppt资源网免费

专业的食品行业网站开发,ppt资源网免费,部门网站管理建设工作汇报,重庆承越网站制作公司信号和槽 Qt信号的三个要素。 信号源#xff1a;由哪个控件发出的信号。 信号的类型#xff1a;用户进行不同的操作#xff0c;就可能触发不同的信号。 信号的处理方式#xff1a;槽(slot) 差不多等于函数 Qt中可以使用connect这样的函数#xff0c;把一个信号和一个…信号和槽 Qt信号的三个要素。 信号源由哪个控件发出的信号。 信号的类型用户进行不同的操作就可能触发不同的信号。 信号的处理方式槽(slot) 差不多等于函数 Qt中可以使用connect这样的函数把一个信号和一个槽关联起来。 后续只要信号出发了Qt就会自动的执行槽函数。 所谓的槽函数本质就是一种回调函数(callback)。 Qt中一定是先关联信号和槽然后再触发这个信号顺序不能颠倒否则就不知道如何处理了。 connect 是QObject提供的静态的成员函数 在Qt中提供的这些类本身是存在一定的继承关系的。 比如QWidget由以下子类QPushButtonQLineEdit。 QWidget的父类是QObject。 QObject就是其他Qt内置累的“祖宗”。 在java中也存在类似的设定。比如所有的类都是继承自Object类。 connect具体使用方式 在qt5中重载了这个connect函数。 第二个参数和第四个参数在qt5中用的都是泛型参数可以传递任意的函数指针。 connect (const QObject *sender, const char * signal ,const QObject * receiver , const char * method , Qt::ConnectionType type Qt::AutoConnection ) sender:信号源描述了当前信号是哪个控件发出来的。 signal描述了信号的种类是什么。 receiver信号的接受对象。哪个对象负责处理 method这个对象该怎么处理 **ctrl左键跳转到函数定义的地方。**alt左箭头返回。 QPushButton中的信号 QPushButton继承自他的父类QAbastractButton这个父类里面有个clicked的信号。 自定义槽函数 开发当中大部分情况都是需要自定义槽函数的。 实际上和自己自定义成员函数没什么区别。 但是在以前的Qt版本中必须将槽函数放到public slots中。 qmake使用元编程技术构建Qt项目的时候使用qmake会自动扫描关键字比如slots从而生成一些qt的代码。 #include widget.h #include ui_widget.h #include QPushButton Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);QPushButton* btn new QPushButton(this);btn-setText(按钮);btn-move(200, 300);connect(btn, QPushButton::clicked, this, Widget::hanld); }Widget::~Widget() {delete ui; }void Widget::hanld() {this-setWindowTitle(按钮已经按下了); } #ifndef WIDGET_H #define WIDGET_H#include QWidgetQT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void hanld();private:Ui::Widget *ui; }; #endif // WIDGET_H 通过ui界面生成自定义槽 qt生成的函数形同 on_pushButton_clicked()在Qt中不仅可以通过connect来连接信号槽还可以通过函数名字来实现槽会进行自动连接。 pushButton是ui的objectname的名字。 自定义信号 自定义信号比较少见实际开发中很少会需要自定义信号。 Qt的内置型号基本上已经覆盖到了上述所有可能的用户操作。 所谓的Qt的信号本质是一个函数。 但是是一个特殊的函数程序员只需要写出函数声明并且告诉Qt这是一个信号即可。 函数的定义在编译过程会自动生成。 signals 这是Qt自己扩展出来的关键字。 qmake的时候扫描到类中包含signals的时候。 会自动把下面的函数声明认为是信号并且给这些信号函数自动的生成函数定义。 比如信号只需这样声明即可。 class { signals:void mySignal(); };emit关键字 自定义的信号需要通过手动发射。 可以通过emit mySignal();发送出自定义信号。 带参数的信号和槽 void handleMySignal(const QString text); signals:void mySignal(const QString text);private slots:void on_pushButton_clicked();信号和槽的参数必须一致 可以不一致但是信号的参数必须比槽的函数多。 #include widget.h #include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);connect(this, Widget::mySignal, this , Widget::handleMySignal);}Widget::~Widget() {delete ui; }void Widget::handleMySignal(const QString text) {this-setWindowTitle(text); }//这个槽函数会自动连接 void Widget::on_pushButton_clicked () {emit mySignal(带参数的信号); } 带参数的clicked信号 这个bool参数的意思对于QPushButton没啥意义 对于QCheckBox复选框就很有用了。
http://www.dnsts.com.cn/news/279672.html

相关文章:

  • 群辉nas怎么做网站android开发是做什么的
  • 做编辑器的网站机关网站建设创新
  • 大连公司做网站网站对应的ip地址吗
  • 常见的网站模式网站设计的必要性
  • 嘉兴网站排名永兴县网站建设服务商
  • 网站内容为王网站设计seo
  • asp网站建设 iis配置自己网站建设
  • 深圳企业企业网站建设最大源码网站
  • 推荐网站建设收费标准南京浦口网站建设
  • 网站设计书籍模板做图 网站有哪些
  • 班级网站建设首页报告如何策划网站
  • 常见的网站类型上海人才引进官网
  • No物流网站建设app网站制作要多少费用
  • vs2017网站开发怎么查看网站备案商
  • 百度抓取网站登录无极电影网迅雷下载
  • 域名备案以后怎么建设网站常德注册公司流程及费用
  • 什么是网站ui设计企业咨询师
  • 长沙网开亿面做网站多少钱长沙优化科技有限公司正规吗
  • wordpress完整安装包做网站建设优化的公司排名
  • 宠物网站模板服装网站建设的利益分析
  • 重庆网站制作长沙广告传媒公司注册费用
  • 网站建设和网络优化旅游网站模板大全
  • 福州手机建站模板中国前500强企业名单
  • 有没有免费的网站软件给公司制作网站吗
  • 无锡崇安网站建设wordpress 如何重启
  • 网站备案成功后怎么弄慈溪市住房和城乡建设局网站
  • 快手评论点赞网站建设专业分站oppo开发者选项在哪里打开
  • 网站首页关键词wordpress api 自定义认证
  • 网站开发教程PDF微盘下载wordpress自带缓存
  • 引流软件下载站wordpress相关文章调取