【问题标题】:Qt model view architecture between QSlider and QSpinBoxQSlider 和 QSpinBox 之间的 Qt 模型视图架构
【发布时间】:2012-05-27 14:38:55
【问题描述】:

我想在 QSlider 和 QSpinBox 之间共享数据。如果我编辑一个,另一个应该得到相同的值,而不必使用模型视图委托架构手动完成。

知道如何将此架构与整数模型一起使用吗?

谢谢

【问题讨论】:

  • QSliderQSpinBox 是代表编辑吗?如果没有,您根本不应该使用 MVD - 只需使用信号/插槽。
  • 我什至不明白除了信号/插槽之外您还想要什么其他方法。这些简单的小部件仅表示上下范围之间的值。他们并没有真正为任何数​​据结构建模。只是产生价值输出来驱动其他东西。

标签: qt architecture view model delegates


【解决方案1】:

我不太确定我是否理解您的问题,但在 Qt 中执行此操作的标准方法是仅使用内置信号和插槽 valueChanged(int)setValue(int)

connect(slider, SIGNAL(valueChanged(int)), spinbox, SLOT(setValue(int)));
connect(spinbox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));

请注意,这不会产生无限递归,而且在两行代码中,它是非常自动的。

【讨论】:

  • 这是我使用的,但是当我使用设置器时它触发了信号。现在我正在使用 blockSignals(true);方法。谢谢。
  • @YassirEnnazk 您可能还想查看QSlider::sliderMoved()QAbstractSpinBox::editingFinished() 信号,这些信号在您使用setValue() 时不会发出。
  • 你是正确的 sliderMoved() 信号但是 QAbstractSpinBox::editingFinished() 在我使用编辑 SpinBox 时没有被触发。
猜你喜欢
  • 2012-03-13
  • 1970-01-01
  • 2011-05-12
  • 2012-11-06
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多