QDialog接受返回自定义类对象
我正在使用qt-creator来构建一个小QT应用程序。QDialog接受返回自定义类对象
我有一个主窗口,我有一些像“新联系人”按钮的控件。 显示QDialog按钮,它包含3行编辑:姓名,手机和电子邮件。
该对话框通过信号/插槽系统显示。它工作正常,但我想创建一个Contact对象,当单击OK时,我想将该Contact添加到我的主窗口,以便将它放入在主窗口代码中创建的QList中。
其做法是: 的QMainWindow - >新的联系人 - >了QDialog示
QDialog的 - >确定 - >的QMainWindow
我应该从主窗口传递的QList到QDialog的作为参数或有是最好的方式?
回答:
我应该将QList从主窗口传递给QDialog作为参数还是有最佳方法?
在我看来,最好的将是一个自定义的QDialog子类有三个QLabel秒和3 QLineEdit秒。
标签将得到以下类型的值:
标签1:命名
标签2:移动电话号码
标签3:电子邮件
您可以使用QLabels和QLineEdits将它们与输入一起显示来自用户。
然后,你的程序可能已经做了,分别处理“accept”事件。你可以用下面的方法来获取最终用户输入的文本:
text : QString
这个属性保存行编辑的文本。
设置此属性将清除选择内容,清除撤消/重做历史记录,将光标移动到行尾并将修改后的属性重置为false。使用setText()插入时,文本未经验证。
该文本被截断为maxLength()长度。
默认情况下,此属性包含一个空字符串。
然后,在accepted signal的处理程序,你可以召唤3种存取方法,如:
即QString名()const的{返回nameLineEdit->文本(); }
QString mobileNumber()const {return mobileNumberLineEdit-> text(); }
QString email()const {return emailLineEdit-> text(); }
你也可以存储在一个专门的结构取决于你建立你的数据表示,这样的结构是这样的:
struct Contact { QString name;
QString mobileNumber;
QString email;
};
,然后你会为这个访问如下
Contact contact() const;
回答:
做一个QDialog的子类。调用Yourclass :: exec()来显示对话框(exec是QDialog中的一个函数),然后再用Yourclass :: contactDetails()来获取它们。 contactDetails是一个非常普通的成员函数,你必须编写它。
以上是 QDialog接受返回自定义类对象 的全部内容, 来源链接: utcz.com/qa/261971.html