首页 文章

调用父小部件功能

提问于
浏览
1

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

1 回答

  • 3

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

    在处理数据之前,请确保所有相应的字段都包含数据,然后保证您拥有有效的表单 .

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

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

    Sig / slot不保证呼叫顺序,并且发出信号实质上意味着任何能够看到此对象的人都可以连接到其信号并选择此更改 . 如果你必须有子组件处理表单数据的保证顺序,那为什么甚至给维护程序员一个搞乱的选择呢?

    其次,对象所在的位置无关紧要 . 有一天,当您的数据消费者变得非常复杂并且您希望根据某些情况(可能是用户权限,或者今天知道!)来捕获不同的数据时,那么您're going to want to do a re-arch. If your logic for getting the data to the consumers is highly dependent upon the objects residing in a certain way in your form, then you'做错了 .

相关问题