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

回到顶部