做图素材网站哪个好WordPress链接公众号插件
web/
2025/10/6 23:26:01/
文章来源:
做图素材网站哪个好,WordPress链接公众号插件,汕头建网站,wordpress直播需要云服务器等云产品来学习Linux的同学可以移步/--腾讯云--/--阿里云--/--华为云--/官网#xff0c;轻量型云服务器低至112元/年#xff0c;新用户首次下单享超低折扣。 目录 一、Qt中的信号和槽
1、信号
2、槽
3、Q_OBJECT
二、Qt中的connect函… 需要云服务器等云产品来学习Linux的同学可以移步/--腾讯云--/--阿里云--/--华为云--/官网轻量型云服务器低至112元/年新用户首次下单享超低折扣。 目录 一、Qt中的信号和槽
1、信号
2、槽
3、Q_OBJECT
二、Qt中的connect函数
三、自定义信号、自定义槽
1、自定义槽函数
1.1使用代码创建控件的方式
1.2使用ui创建控件的方式
2、自定义信号
四、带参数的信号和槽
五、信号和槽断开连接
六、使用lambda表达式定义槽函数 一、Qt中的信号和槽
1、信号 信号源由哪个控件产生的信号 信号的类型用户对GUI界面的不同操作就可能触发不同的信号点击、移动光标、勾选、下拉等 2、槽 信号的处理方式槽 处理信号的回调函数 Qt使用connect这样的函数把一个信号和一个槽关联起来。信号触发自动回调信号处理函数。 3、Q_OBJECT 如果一个类要使用信号和槽必须在类中添加Q_OBJECT这个宏 二、Qt中的connect函数
connect是QObjectQt中其他类的“祖先类”提供的静态成员函数。
bool QObject::connect(const QObject *sender,const QMetaMethod signal, const QObject *receiver, const QMetaMethod method, Qt::ConnectionType typeQt::AutoConnection); const QObject *sender: 哪个控件const QMetaMethod signal: 哪种信号必须是信号源自带或继承自父类的信号const QObject *receiver: 哪个对象负责处理const QMetaMethod method: 用于处理信号的槽函数。要处理信号的对象提供的成员函数Qt::ConnectionType type: 连接类型它可以指定连接的类型如自动连接、直接连接等。通常不需要手动设定。第一个和第二个参数第三个和第四个参数类型要对上才行。 [signal] void QAbstractButton::clicked(boolchecked false) This signal is emitted when the button is activated (i.e., pressed down then released while the mouse cursor is inside the button), when the shortcut key is typed, or when click() or animateClick() is called. Notably, this signal is not emitted if you call setDown(), setChecked() or toggle(). If the button is checkable, checked is true if the button is checked, or false if the button is unchecked. See also pressed(), released(), and toggled(). 三、自定义信号、自定义槽
1、自定义槽函数
槽函数一般用于用户触发某个操作后需要执行的业务逻辑。所以需要自定义槽函数。
1.1使用代码创建控件的方式 1.2使用ui创建控件的方式 自动生成的槽函数的名字是on_pushButton_clicked,其中on是固定的pushButton是ui中的objectNameclicked写明了是哪种信号。所以ui自动生成的槽函数不需要connect函数就能在触发信号时被回调。ui_widget.h中调用了QMetaObject::connectSlotsByName它会触发自动连接信号槽的规则
2、自定义信号
自定义信号很少用到。因为在GUI中用户的操作行为是可以穷举的Qt内置的信号已经覆盖到了大部分可能的用户操作。
如果真的需要自定义信号 1、信号是一种特殊的函数程序员只需写出函数声明并告诉Qt这是一个信号即可。这个函数的定义是Qt在编译过程中自动生成的。无法干预 2、信号函数的返回值必须是void有没有参数都可以也支持函数重载。 3、信号可以使用emit关键字进行发射。Qt5 emit不写也行 四、带参数的信号和槽
信号和槽也可以带参数。发射信号时就可以给信号函数传递实参这个参数就会被传递到对应的槽函数中。 信号和槽函数的参数类型必须一致个数可以不一致但是信号的参数个数必须大于槽函数的参数个数。 一个信号通过connect关联多个槽函数一个槽函数也能被多个信号关联。
五、信号和槽断开连接 使用disconnect断开信号槽的连接主动断开往往是把信号重新绑定到另一个槽函数上 如果这里的代码没有disconnect会使一个信号绑定两个槽函数触发点击按钮同时执行两个槽函数。
六、使用lambda表达式定义槽函数
注意被捕获变量的生命周期。
尽量传值捕获传引用捕获可能会捕获到已经被释放的变量造成段错误。例如 上图传值捕获没问题传引用捕获会崩溃。原因是button是局部变量它指向的空间位于堆区但它自己是一个局部变量的指针构造函数结束后button变量即被销毁造成段错误。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88159.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!