1

我该怎么做呢:

例如,标签用户名 = “用户”

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

此值转到设置值。我知道如何从设置中加载一个值,但是如果我的标签用户名和我输入“名称”的输入框位于 2 个不同的类中,我该如何进行更改?请帮忙。

4

1 回答 1

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);
}
于 2012-09-15T21:08:29.980 回答