这个想法是将QWidget与一个变量连接起来,这样当一个小部件上的文本发生变化时,它也会在变量中发生变化。将QWidget映射到变量
而且这样做只有一个这样的
WidgetMapper::connect(ui->lineEdit, SIGNAL(textChanged(QString)), someClass.var);
线,将例如QLineEdit
具有可变连接。
1)这将在lineEdit
2)当lineEdit触发一个textChanged(QString)
信号显示var
- WidgetMapper将其转换的QString校正映射类型与字符串流,并将其写入var
。
但我真的不知道模板,以及不知道是否有可能。 我不认为每种类型都可以使用一个WidgetMapper,所以我也尝试为每种类型创建不同的实例(WidgetMapper<int> mapper;
),然后为每个QLiteEdit编写setter和onTextChangedSlots,但仍然无法弄清楚如何制作它也可以工作(转换器部分仍然无法找出正确的类型)。
WidgetMapper使用QSignalMapper到信号映射到QWidget的,它工作得很好,我有麻烦的一部分 - 被转换的QString到模板变量中。
那么有可能吗?如果是的话,我怎么能这样做?或者也许已经有解决这个问题的办法了? (以某种方式使用QDataWidgetMapper
与包含变量的类可能?)
为什么不使用'QLineEdit :: value()'并在需要时转换返回的值? –
@RomhaKorev,因为它们有很多,并且在编辑之后变更应该在变量中更改值。所以我想避免写每个QLineEdit onTextChanged插槽将其文本()转换为变量 – Stals