太原做网站直通车17网站一起做网店优势与劣势
news/
2025/9/24 0:32:35/
文章来源:
太原做网站直通车,17网站一起做网店优势与劣势,网站推广营销,用别人服务器做网站一、自定义信号#xff0c;信号emit
1、自定义信号
在头文件中 加入signals#xff1a; 就可以编写信号
2、emit
emit的作用是通知信号发生
二、跨UI控件传参 每次按Dialog添加按钮主控件数字会增长
// .h
private slots:void on_btnAdd_clicked();
signals:void sign…一、自定义信号信号emit
1、自定义信号
在头文件中 加入signals 就可以编写信号
2、emit
emit的作用是通知信号发生
二、跨UI控件传参 每次按Dialog添加按钮主控件数字会增长
// .h
private slots:void on_btnAdd_clicked();
signals:void sign_add(int value);
-----------------------------------------------
//.cpp
void setDialog::on_btnAdd_clicked()
{static int num 1;emit sign_add(num);
}
//.h
private slots:void on_btnOpen_clicked();void addnum(int value);
------------------------------------------------
//.cpp
void Widget::on_btnOpen_clicked()
{setDialog d;connect(d,setDialog::sign_add,this,Widget::addnum);d.exec();
}void Widget::addnum(int value)
{qDebug()value;ui-lineEdit-setText(QString::number(value));
}
三、跨线程之间传参修改控件 子线程自动后台添加数字
//.h
#include QThreadclass XThread : public QThread
{Q_OBJECTpublic:XThread();
signals:void sign_send(int value);
private:void run() override;//重载 QThread 多线程基类 源码中run为虚函数
};
------------------------------------------------------------------
//.cpp
void XThread::run()
{static int num 0;while(true){emit XThread::sign_send(num);XThread::msleep(200);}
}//.cpp
void Widget::on_btnOpen_clicked()
{XThread *th new XThread();connect(th,XThread::sign_send,this,Widget::addnum);th-start();
}四、槽函数的参数和信号参数的关系
Qt槽函数的参数需要和信号函数保持一致可以比信号函数的参数少但是不能顺序不同也不能比信号函数的参数多。
五、解决信号重载问题 1、Qt4写法
connect(th,SIGNAL(sign_send(int)),this,SLOT(addnum(int)));2、泛型写法 connect(th,QOverloadint::of(XThread::sign_send),this,Widget::addnum);六、Qt信号槽与moc
moc全称是 Meta-0bject Compiler也就是“元对象编译器”。Qt程序在交由标准编译器编译之前先要使用moc分析C源文件。如果它发现在一个头文件中包含了宏Q_OBJECT则会生成另外一个C源文件这个源文件中包含了Q_OBJECT宏的实现代码这个新的文件名字将会是原文件名前面加上moc构成这个新的文件同样将进入编译系统最终被链接到二进制代码中去。因此我们可以知道这个新的文件不是“替换”掉旧的文件而是与原文件一起参与编译。另外我们还可以看出一点moc的执行是在预理器之前。因为预处理器执行之后Q_OBJECT宏就不存在了。 通俗来讲就是moc把Qt中的一些不是C的关键字做了解析让C的编译器在编译的过程中认识Qt中的关键字。 配置好环境后 在终端运行moc指令 生成的C文件会在C编译过程中链接到二进制文件中
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914367.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!