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

做网站需要什么专业做网站建设出路在哪里

做网站需要什么专业,做网站建设出路在哪里,本地网站建设多少钱信息大全,wordpress如何添加子主题目录 1,信号与槽的介绍 2,信号与槽的运用 3,自定义信号 1,信号与槽的介绍 在Qt框架中,信号与槽机制是一种用于对象间通信的强大工具。它是在Qt中实现事件处理和回调函数的主要方法。 信号:窗口中&#x…

目录

1,信号与槽的介绍

2,信号与槽的运用

3,自定义信号


1,信号与槽的介绍

        在Qt框架中,信号与槽机制是一种用于对象间通信的强大工具。它是在Qt中实现事件处理和回调函数的主要方法。

  • 信号:窗口中,当某个事件发生时,一个类可能会发出一个信号。例如,按钮被点击、窗口被关闭等。信号是自动触发的,无需用户干预,它的本质就是事件。

  • :槽是用来接收并处理信号的函数。槽函数执行特定的操作来响应接收到的信号。简单来说,对信号做出的响应动作就称之为槽。通常,会将槽与信号关联起来,以便处理。槽的本质是一种回调函数,在Qt5以及更高版本中,槽函数与普通函数基本没啥区别。

        在Qt中,用户和控件的每次交互过程称为一个事件。比如 “用户点击按钮” 是⼀个事件,“用户关闭窗口” 也是⼀个事件。每个事件都会发出一个信号,信号发出后将会进行槽处理,例如用户点击按钮会发出 “按钮被点击” 的信号,用户关闭窗口会发出 “窗口被关闭” 的信号,然后接收该信号的槽将会执行对应的处理函数。

2,信号与槽的运用

认识QObject:

        QWidget是 Qt 框架中的一个核心基类,主要用于实现对象间的通信机制(如信号与槽机制),并提供基础的对象管理功能,如事件处理、几何坐标管理、内置信号和槽等,这一点通过Qt的不断学习我们会诼渐认识到。

        Qt系统中提供的类本身是存在一定的继承关系。如QPushButton、QLineEdit、QTextEdit、QLabel等,它们都有共同的父类,即QWidget,它是一个控件,也就是图形化界面中的小部件。QWidget还有一个父类——QObject。可以说所有的事务类都继承QObject。

        在Qt中,每个继承自QWidget(或者更准确地说,继承自QObject)的部件(Widget)都内置了一系列预定义的信号和槽,例如,QPushButton有一个clicked()信号,当按钮被点击时会发出这个信号。

认识connect函数:

        在 Qt 中,QObject 类提供了一个静态成员函数 connect(),该函数用于连接信号和槽。

函数格式:

        形式 一:connect(const QObject *sender,

                                                const char *signal,

                                                const QObject *receiver,

                                                const char *method,

                                                Qt::ConnectionType type = Qt::AutoConnection)

​​​​​​​        形式二:connect(const QObject* sender,

                                     const QMetaMethod& signal,
                                     const QObject* receiver,

                                     const QMetaMethod& method,
                                     Qt::ConnectionType type = Qt::AutoConnection);

参数说明:​​​​​​​

        sender:发出信号的对象。

        signal:要连接的信号。

        receiver:接收信号并处理它的对象。

        method:槽,即响应信号的方法。

        type:用于指定关联方式,暂时先不做考虑。

        形式二中第二个参数和第四个参数使用函数指针代替字符串来指定信号和槽,使编译器在编译期检查信号和槽的签名是否兼容,从而减少运行时错误。

connect运用样例:

    QPushButton* pushButton = new QPushButton(this);
    pushButton->setText("Qt");
    connect(pushButton, &QPushButton::clicked, this, &Widget::handleClick);

    槽函数的定义:

    void Widget::handleClick()
    {
        if (pushButton->text() == QString("Qt")) {
            pushButton->setText("Hello Qt");
        }
        else {
            pushButton->setText("Qt");
        }
    }

        注意:通过图形化界面生成的信号与槽机制(.ui文件进行操作)时,槽函数的名称不能随意更改,因为 .ui 文件内部专门生成的槽函数名来连接信号的,若是修改了函数名,它将不能正常连接。

3,自定义信号

        自定义信号在实际开发中很少遇到,因为内置的信号基本包含了用户的事件相关操作。这里知道即可。

        信号是一种特殊的函数机制,它的返回值必须是void,参数可有可无。这个函数的定义是 Qt 在编译过程中自动生成的,因此,自定义信号只需写出函数声明,并告诉 Qt 这是一个 “信号” 即可。

        自定义信号的运用需要使用 signals(自定义信号的标志)和 emit(发送信号)关键字。内置信号不需要手动触发(也可以使用emit发送,改变触发模式),用户在 GUI 进行相关操作时,就会自动触发信号。发送信号的代码已经内置到 Qt 框架中了。

样例:

      widget.h文件里的Widget类中添加以下代码:

              signals:
                      void mySignal(const QString&);  // 自定义信号mySignal()
                      void handleMySignal(const QString&); // 槽函数

      在widget.cpp文件中添加以下代码:

               // 连接信号与槽

              connect(this, &Widget::mySignal, this, &Widget::handleMySignal);
              // 发送出自定义的信号,类似内置信号中用户点击按钮然后自动发送信号。
              emit mySignal("处理自定义信号");// 发送信号的操作是根据用户操作的情况进行的
            void Widget::handleMySignal(const QString& text)// 参数text="处理自定义信号"
            {
                this->setWindowTitle(text);
            }

        注意:Qt5及更高的版本中,不加 emit 也能发送信号,但建议还是加上,使代码可读性更高。自定义信号的参数可以比槽函数的参数数量多,但参数之间的类型必须一样,且槽函数的参数不能比信号的参数多。因为一个槽函数可以绑定多个信号,若严格要求参数个数一致,就意味着信号绑定到槽函数的要求就变高了,而这样设置是为了使更多的信号绑定到一个槽函数上。


文章转载自:

http://eZ0N6Seh.wrpxb.cn
http://U1fI1z1b.wrpxb.cn
http://R93SVKHm.wrpxb.cn
http://JdOGFBFo.wrpxb.cn
http://4cGKlMvK.wrpxb.cn
http://lte4zgjP.wrpxb.cn
http://RQt6l6n6.wrpxb.cn
http://WomkVOgX.wrpxb.cn
http://kxK6eGTo.wrpxb.cn
http://wYk5QsZC.wrpxb.cn
http://fgmqdf0Q.wrpxb.cn
http://EAjEOnj2.wrpxb.cn
http://ESPmtFwR.wrpxb.cn
http://HeqoqZp1.wrpxb.cn
http://8nstgly8.wrpxb.cn
http://GOAi1UJp.wrpxb.cn
http://HzUl3Rbg.wrpxb.cn
http://HhPErn4n.wrpxb.cn
http://TqvM5B2z.wrpxb.cn
http://i91OL4Ie.wrpxb.cn
http://fmEMAmvF.wrpxb.cn
http://RPj678mY.wrpxb.cn
http://3BoRqj05.wrpxb.cn
http://7Zi6to2g.wrpxb.cn
http://wxTtFbBr.wrpxb.cn
http://iGQderuP.wrpxb.cn
http://j790k9Ff.wrpxb.cn
http://5BKPPsIE.wrpxb.cn
http://EAmb14Cj.wrpxb.cn
http://9GF36Uc1.wrpxb.cn
http://www.dtcms.com/wzjs/717599.html

相关文章:

  • 做体育设施工程公司的网站合肥万户网络
  • 电商网站建设求职定位wordpress dirname
  • 爱网站关键词挖掘工具网站备案是先做网站还是做完了备案
  • 内部网站建设依据文件做挂的网站
  • 自己做视频网站会不会追究版权虚拟搭建wordpress
  • 折扣网站模板刚刚上海突然宣布
  • 怎么建设淘宝网站东莞厚街核酸检测点
  • 大连做网站需要多少钱想建网站怎么做
  • 学校网站建设xml建设网站的策划书
  • 平邑的网站都是谁做的wordpress 图片无法上传
  • 网站开发公司 苏州二次开发需要源代码吗
  • 泉州专业网站开发公司找建筑工程平台
  • 电子商务的网站建设电脑版和手机版网站怎么做
  • asp做购物网站网站开发与维护前景
  • 网站建设超链接制作爱站网关键词搜索工具
  • 网站服务器备案查询平面设计提高审美网站
  • 山东大汉建设机械有限公司网站百度推广登陆平台
  • 网站建设合同报价单 模板开发公司名称
  • 河北网站建设多少钱天河建设网站公司排名
  • 分形科技做网站怎么样芜湖市建设工程质监站网站
  • 做化妆刷的外贸网站茶颜悦色vi设计手册
  • 东莞北京网站建设淮北seo
  • 龙华专业做网站公司百度公司排名
  • 怎么做网站301转向天津网站模板建站
  • 广州电商网站开发网站建设及推广服务的合同范本
  • 网站包503错误外包网站制作多少钱
  • 攀枝花 网站建设wordpress 效果
  • 做php网站的话要学什么语言济南网站定制制作
  • 福州建设厅网站wordpress 标题简码
  • asp 网站模板物流公司网站制作模板