在Qt中将值从对话框传递到主窗口

时间:2015-10-23 10:21:14

标签: qt

我在Qt5中使用QCreator。我在MainWindow中有lineEdit_1,在Dialog中有lineEdit_2。当用户在lineEdit_1中输入值时,该值应自动插入lineEdit_2中。为了做到这一点,我实现了以下仍然给我一个错误:

void Dialog::on_lineEdit_editingFinished()
{
    MainWindow main;
    ui->lineEdit->addItem(main->lineEdit->text());
}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的代码存在许多问题:

  • QLinedEdit没有addItem(QString)方法。它有一个setText(QString)

  • 你在堆栈上创建了一个MainWindow,这肯定是不对的。您需要引用原始主窗口,而不是创建新窗口。如果在创建对话框时将对话框设为父对象,则可以访问原始窗口小部件指针,并使用MainWindow *将父指针强制转换为qobejct_cast()

  • 您使用指针语法,但MainWindow main;不是指针而是实例。

  • 您正在设置一个事件处理程序,用于更改对话框行编辑的内容,这与您要执行的操作相反,因为您说您希望更改主ui行编辑为通过对话框编辑反映出来。