Qt - 当对话框关闭时更改LineEdit的值

时间:2012-09-15 19:23:16

标签: c++ qt

我该怎么做:

例如,标签username =“user”

我单击一个按钮,会出现一个对话框,要求输入。我在输入框中输入“name”,然后单击“确定”。现在我如何制作它,以便当我点击对话框上的确定按钮时标签用户名将自动更改为“名称”?

此值转到“设置”值。我知道如何从设置加载值,但如果我的标签用户名和我输入“name”的输入框在2个不同的类中,我该如何导致更改?请帮忙。

1 个答案:

答案 0 :(得分:3)

您需要使用信号和插槽。在拥有此QLineEdit的类中,您必须声明信号,如

class SomeClass : public QDialog     //or other inheritance
{
    /* constructors, functions and other stuff */
    signals:
         void valueChanged(const QString&);        //in QString you will send new value
}

在有人点击“确定”按钮后,您必须发出此信号:

emit valueChanged(myQLineEdit->text());

在您调用SomeClass的类中,您必须将此信号连接到您将更改标签值的插槽,例如:

void MainWindow::someMethod()
{
    SomeClass *class = new SomeClass;
    connect(class, SIGNAL(valueChanged(QString)), this, SLOT(changeValue(QString)));
    /* set other parameters, show window*/
}

void MainWindow::changeValue(const QString &newText)
{
    myQLabel->setText(newText);
}