我有一个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创建窗口小部件
- 8. Qt的删除窗口小部件
- 9. Qt - 使用QDataWidgetMapper在窗口小部件上映射两个表
- 10. Qt:在子窗口小部件上使用QPainter
- 11. 使用QT Creator仅样式化提升窗口小部件
- 12. Android应用程序窗口小部件的编程功能
- 13. 如何清除父窗口小部件中的所有窗口小部件?
- 14. 重新使用窗口调整大小/加载功能
- 15. 重置窗口大小调整功能
- 16. 使用python窗口小部件
- 17. QT C++传递小部件功能
- 18. 从父窗口和父窗口提交功能给父窗口和iframe
- 19. 允许父窗口调用不同域的子iframe的功能
- 20. 防止QLabel调整父级窗口小部件
- 21. 调整无窗口小部件的窗口大小
- 22. 如何在窗口中调整窗口小部件的大小
- 23. 事件的回调窗口小部件
- 24. 从父窗口调用JavaScript
- 25. 如果我使用grid(),为什么窗口大小调整时窗口小部件不能缩放?
- 26. Qt/C++:标识事件处理程序中的父窗口小部件(信号)
- 27. 如何添加复合窗口小部件:这个窗口小部件的父窗口没有实现HasWidgets
- 28. Qt的图形用户界面的创建,窗口小部件调整
- 29. 使用Javascript从弹出窗口调用父窗口函数
- 30. 使用Qt,如何使用鼠标移动事件向上或向左调整窗口小部件
验证数据后,我必须将这些数据传递给自定义类。在这种情况下,信号/插槽系统是否合适?还是应该使用别的东西? – Stefano 2012-04-13 13:22:37
@Stefano我认为我不明白什么样的信号/时隙在数据验证之后与此有关。无论你想要什么,你都可以做到。确定何时查看并查看所有字段中是否有有效数据可能需要信号/插槽;这取决于你的架构。 – 2012-04-13 13:25:40
基本上,将验证数据传递给在父QWidget类中具有自己的实例的自定义类方法的最佳方式是什么? – Stefano 2012-04-13 13:53:40