如何在QT中使用connect语句更改inputbox中的值时更新Qsetting的值

时间:2016-10-25 05:07:49

标签: linux qt

我只想更新Qsettings中的值,而使用connect语句更改Qlineedit只意味着我不想在Qsettings中为更新值创建任何函数。

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用新的信号/槽语法(https://wiki.qt.io/New_Signal_Slot_Syntax) lambda表达式作为槽。我不确定您使用的是哪种类型的小部件,因为 QLineEdit 没有 valueChanged 信号(只有 textChanged 信号),所以我假设你必须使用 QSpinBox 。以下是两种情况的示例代码( QLineEdit QSpinBox

connect(ui->lineEdit, &QLineEdit::textChanged, [=](const QString& str)
{
   QSettings().setValue("attribute",str);
});

connect(ui->spinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [=](int val)
{
   QSettings().setValue("numAttribute",val);
});