我有一个QStackedWidget与几个QPushButton按钮。小部件的父小部件是QMainWindow。在QStackedWidget里面我也有一些QLineEdit。我想要做的事很简单:验证包含文本框的表单,以及是否可以调用将处理数据的自定义类的函数。类的实例是在我的QMainWindow类中创建的。调用该类方法的最佳方法是什么?我应该使用Qt的信号/插槽机制将我的自定义类连接到QStackedWidget中的小部件实例吗?使用Qt调用父窗口小部件功能
1
A
回答
3
您可以根据需要多次从QValidator中派生出来,并在需要验证的每个字段上安装验证程序。这样,您可以确保该字段为空或包含有效的条目。
在处理您的数据之前,请确保所有适当的字段都有数据,并保证您拥有有效的表单。
将数据从表单传递给某些表单数据使用者的典型方法是创建一个中间人类来存储数据。在表单被验证之后,该类的一个实例被填充,然后实例被传递给使用者。这样,如果表单发生变化,则只要收集了相同的数据,您的客户就会与这些更改分离。
一般规则是针对对象接口,而不是它们的实现。无论你是做sig/slot还是直接函数调用都没有关系,只要你记住一些事情:
sig/slot不保证呼叫顺序,发射信号本质上意味着任何人都可以看到这个对象可以连接到它的信号并选择这个改变。如果你的必须有的子组件处理你的表单数据的保证顺序,那么为什么即使给维护程序员选项搞乱?
其次,应该没有问题其中对象所在。有一天,当你的数据消费者变得非常复杂,并且你想基于某种场景(也许是用户权限,或者今天的日期,或者当前的温度,我不知道!)来捕捉不同的数据时,那么你将要想做一个重新拱门。如果将数据传递给消费者的逻辑高度依赖于表单中以某种方式存在的对象,那么你就错了。
相关问题
- 1. Qt - 调用窗口小部件父窗口
- 2. 调用父窗口功能的JavaScript
- 3. 在子窗口中不能调用父窗口的功能
- 4. PyQt - 调整父级窗口小部件的子窗口大小
- 5. Qt窗口小部件,是否必须将包含窗口小部件设置为父窗口?
- 6. 用于滚动窗口的qt小部件使端口能够输出终端
- 7. 如何让Qt Widget填充父窗口小部件?
- 8. 如何访问qt上的父窗口小部件?
- 9. Qt的删除窗口小部件
- 10. Qt创建窗口小部件
- 11. QT中的透明窗口小部件
- 12. 使用工厂创建QT提升窗口小部件
- 13. 使用QT Creator仅样式化提升窗口小部件
- 14. Qt - 使用QDataWidgetMapper在窗口小部件上映射两个表
- 15. 使用Qt Designer升级顶级窗口小部件
- 16. QT Creator中使用的窗口小部件的名称
- 17. Qt:在子窗口小部件上使用QPainter
- 18. Qt选项卡窗口小部件添加角组窗口小部件
- 19. Android应用程序窗口小部件的编程功能
- 20. 父窗口调整大小?
- 21. 当调整父窗口小部件时保持纵横比调整子窗口小部件
- 22. 如何清除父窗口小部件中的所有窗口小部件?
- 23. 没有布局的父窗口小部件上的中心窗口小部件
- 24. 父窗口小部件如何定位其子窗口小部件?
- 25. 重新使用窗口调整大小/加载功能
- 26. 使用jquery调整窗口大小的功能
- 27. jQuery调整窗口大小功能
- 28. 重置窗口大小调整功能
- 29. QT在窗口中最大化窗口小部件
- 30. 如何禁用父窗口小部件中的所有用户输入窗口小部件(按钮,条目..)?
验证数据后,我必须将这些数据传递给自定义类。在这种情况下,信号/插槽系统是否合适?还是应该使用别的东西? – Stefano 2012-04-13 13:22:37
@Stefano我认为我不明白什么样的信号/时隙在数据验证之后与此有关。无论你想要什么,你都可以做到。确定何时查看并查看所有字段中是否有有效数据可能需要信号/插槽;这取决于你的架构。 – 2012-04-13 13:25:40
基本上,将验证数据传递给在父QWidget类中具有自己的实例的自定义类方法的最佳方式是什么? – Stefano 2012-04-13 13:53:40