调用父小部件函数

Call parent widget function

本文关键字:函数 小部 调用      更新时间:2023-10-16

使用Qt,我有一个带有多个QPushButton按钮的QStackedWidget。小部件的父小部件是 QMainWindow。在QStackedWidget中,我也有一些QLineEdit。我想做的很简单:验证包含文本框的表单,如果一切正常,则调用将处理数据的自定义类的函数。该类的实例是在我的 QMainWindow 类中创建的。调用该类的方法的最佳方法是什么?我应该使用Qt的信号/插槽机制将我的自定义类连接到QStackedWidget中的小部件实例吗?

您可以根据需要多次从 QValidator 派生,并在需要验证的每个字段上安装验证器。这样,您可以确保该字段为空或包含有效条目。

在处理数据之前,请确保所有相应的字段都有数据,并保证您具有有效的表单。

将数据从表单传递到表单数据的某些使用者的典型方法是创建一个中间人类来保存数据。在验证表单后填充类的实例,然后将该实例传递给使用者。这样,如果表单中存在更改,则只要收集相同的数据,您的使用者将与这些更改隔离开来。

一般规则是针对对象接口工作,而不是针对它们的实现。无论你是做sig/slot还是直接函数调用都没有关系,只要你记住一些事情:

Sig/slot不保证调用顺序,发射信号本质上意味着任何可以看到此对象的人都可以连接到其信号并获取此更改。 如果您必须保证按子组件处理表单数据的顺序,那么为什么还要给维护程序员一个搞砸的选项呢?

其次,对象驻留在哪里并不重要。有一天,当你的数据使用者变得非常复杂,你想根据某种场景(可能是用户隐私,或者今天的日期,或者当前的温度,我不知道!)捕捉到不同的数据使用者时,那么你就会想要重新构建。如果将数据提供给使用者的逻辑高度依赖于以某种方式驻留在表单中的对象,那么您就错了。