C ++ QT Creator为QTextEdit :: verticalSlideBar创建插槽功能吗?

问题描述 投票:0回答:1

我正在使用QT Creator创建一个简单的应用程序,每个应用程序旁边都有两个textEdit字段。我希望在滚动时将两个字段都链接起来,这样当一个字段向上或向下滚动时,另一个字段也会自动滚动,反之亦然。为此,我需要一个回调函数,只要用户移动其中一个字段的slideBar就会触发该回调函数。不幸的是,当我右键单击textEdit字段并按“转到插槽”时,找不到滑动条移动的事件。

我该如何实现?

c++ qt qt-creator
1个回答
0
投票

QTextEdit没有信号表明它的滑动条何时更改,因为它不是滚动条。但是,QScrollBar具有sliderMoved(int value)信号,该信号在滑块移动时发出。 QScrollBar还可以通过插槽设置滚动值(使用setValue(int value)

因此,我们可以非常容易地使用信号和插槽将两个滚动条绑在一起。

例如:

... 
// Get easy pointers to the scrollbars
QScrollBar* textbx_slider_1 = ui->textbx1->verticalScrollBar();
QScrollBar* textbx_slider_2 = ui->textbx2->verticalScrollBar();

// Connect them too each other
connect(textbx_slider_1, &QScrollBar::sliderMoved, textbx_slider_2, &QScrollBar::setValue); // Connect the first scrollbar to the second

connect(textbx_slider_2, &QScrollBar::sliderMoved, textbx_slider_1, &QScrollBar::setValue); // Connect the second scrollbar to the first
...

((假设您的QTextEdit小部件的ID为textbx1textbx2

© www.soinside.com 2019 - 2024. All rights reserved.