首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt/OO最佳实践:连接信号和插槽

Qt/OO最佳实践:连接信号和插槽
EN

Stack Overflow用户
提问于 2015-04-14 19:55:19
回答 1查看 839关注 0票数 1

我对Qt的体验相对较轻,虽然我绝对喜欢它。有一件事我不确定,那就是最好的地方是把信号连接到插槽上。下面是我的带有触摸屏的小型设备的一个例子:

我有一个名为RadioModel的类,它属于我的QApplication。我的QApplication也拥有我所说的ViewController。ViewController拥有视图-即构成用户界面的所有小部件。当然,UI小部件有一些层次结构。顶层小部件是一个QHBoxLayout,它在顶部有指示器标签,在底部有一个QTabWidget。QTabWidget有3个屏幕,每个屏幕上都有QLabels、QGroupBoxes、QComboBoxes等。

当QGroupBoxes和QComboBoxes中的值发生变化时,需要向模型发出信号。我最初的想法是有一条这样的链条:

QRadioButton (QGroupBox的一部分)信号单击(),这将转到QTabWidget当前选项卡的插槽,该选项卡查看发送方以确定被单击的值(哪个单选按钮),然后发出自己的信号,如RadioChanged。这个RadioChanged信号将连接到ViewController的RadioChanged信号,而后者又将连接到模型的UpdateRadio插槽。

一般来说,当一个与模型隔离的小部件发出感兴趣的信号时,有这么长的信号链和槽来使这个值回到模型中是否公平?是否更好地将模型传递给ViewController,并可能将其某些对象传递给更短的路径来连接信号?

谢谢-希望这是可以理解的,希望不要太主观。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 21:40:39

我实现了我的“控制器控制数据流”。它从视野中得到信号。然后根据需要更新模型。视图对模型一无所知,反之亦然。

我注意到你说你在发送每个用户输入更改的信号。这可能是非常低效的,并使它很难取消一半的改变。我通常让用户更改所有字段,只有当按下OK按钮时才更新模型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29636263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档