2015-06-23 34 views
1

首先,我会说我是GUI编程的小菜鸟。我使用Qt 5.4。连接不同关系的信号和插槽

我在观看voidRealms视频时想出了这段代码。

connect(ui->horizontalSlider,SIGNAL(sliderMoved(int)),ui->progressBar,SLOT(setValue(int))); 

显然,这将滑块移动与进度条填充连接起来。这实际上像

progressbarfill <- slidermovement。

我怎样才能变成不同的关系?像

progressbarfill <-(slidermovement)/ 2或类似的东西。

+0

我强烈建议你阅读[官方文档的本段](http://doc.qt.io/qt-5/signalsandslots.html)。我很好地解释了信号和插槽的基本概念。 – Bowdzone

+0

感谢您的快速回复。我会看到.. –

+0

回答你的问题 - 连接到不同的插槽,这是工作。有了Qt5和C++ 11,你可以使用lambda表达式。 – Amartel

回答

1

您需要为此创建新插槽。 但是在C++ 11和Qt 5风格中,您可以使用labmdas!这样短的功能非常舒适。 你的情况:

connect(ui->horizontalSlider, &QSlider::sliderMoved, this, [this](int x) { 
this->ui->progressBar->setValue(x/2); 
}); 
+0

非常感谢! –