我该怎么做:
例如,标签username =“user”
我单击一个按钮,会出现一个对话框,要求输入。我在输入框中输入“name”,然后单击“确定”。现在我如何制作它,以便当我点击对话框上的确定按钮时标签用户名将自动更改为“名称”?
此值转到“设置”值。我知道如何从设置加载值,但如果我的标签用户名和我输入“name”的输入框在2个不同的类中,我该如何导致更改?请帮忙。
答案 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);
}