我在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());
}
任何帮助都将不胜感激。
答案 0 :(得分:1)
您的代码存在许多问题:
QLinedEdit
没有addItem(QString)
方法。它有一个setText(QString)
。
你在堆栈上创建了一个MainWindow
,这肯定是不对的。您需要引用原始主窗口,而不是创建新窗口。如果在创建对话框时将对话框设为父对象,则可以访问原始窗口小部件指针,并使用MainWindow *
将父指针强制转换为qobejct_cast()
。
您使用指针语法,但MainWindow main;
不是指针而是实例。
您正在设置一个事件处理程序,用于更改对话框行编辑的内容,这与您要执行的操作相反,因为您说您希望更改主ui行编辑为通过对话框编辑反映出来。