QT中关于信号和槽的问题?有些不理解

junjian0439 2018-08-27 10:12:58
1.我定义一个信号 一个槽
signals:
Si_test();
public slots:
SF_test();
2。ui 定义一个button 控件 转到槽
3.void MainWindow::on_pushButton_clicked()
{
// SF_test();
connect(this, SIGNAL( Si_test()), this, SLOT(SF_test()), Qt::UniqueConnection);
emit Si_test();
}
槽中 加载链接 发射信号 和 直接调用槽 我感觉没有区别 为什么 要用信号 和槽?
...全文
215 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
_肆 2018-08-27
  • 打赏
  • 举报
回复
当信号触发时,自动执行槽函数,比如你把鼠标移动到按钮上方,这是一个信号,可以用connect绑定一个槽函数,当鼠标移到按钮上方就会执行,其实按钮按下也是一个信号,与他绑定的函数是on_pushButton_clicked(),只不过connect这句代码他隐藏了

你现在写的这段代码,是button按下,执行on_pushButton_clicked()函数,函数里调用了Si_test(),和你写的这个connect没关系,你并没有触发Si_test()这个信号,一开始接触信号和槽用自带的信号的就好了,不用申明自定义信号,比如按钮双击、单击、右键等
sghcpt 2018-08-27
  • 打赏
  • 举报
回复
个人理解:如果是在同一个类中,调用信号和槽,跟直接调用槽应该没有什么区别。但是信号和槽还可以用在不同类之间的信息交互,不同线程之间的信息通信交互等,这些等等都是它存在的理由。相关信息可以在网上查找“深入理解信号槽机制”或者"Qt 信号和槽机制 优点"等等相关信息。
junjian0439 2018-08-27
  • 打赏
  • 举报
回复
谢谢楼上各位朋友的回复 谢谢 结贴

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧