Синхронизация двух QScrollArea. |
Здравствуйте, гость ( Вход | Регистрация )
Синхронизация двух QScrollArea. |
Valter |
6.2.2015, 16:49
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как синхронизировать по прокрутке два одинаковых QScrollArea? То есть, двигаем вертикальный скролл у одного, второй прокручивается в ту же позицию и наоборот.
|
|
|
wiz29 |
6.2.2015, 17:53
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Получить QScrollBar для каждой из областей и присоединить сигналы слоты соответствующие. В чем проблема?
|
|
|
Valter |
7.2.2015, 10:46
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0 |
В чем проблема? В том, что сделать это не получается. В строке connect(ui->scrollArea_1->verticalScrollBar(), SIGNAL(sliderMoved(int)), this, SLOT(scrollMoved(int))); выдаётся ошибка no matching function for call to 'MainWindow::connect(QScrollBar*, const char*, MainWindow* const, const char*). |
|
|
lanz |
7.2.2015, 21:22
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Видимо вы делаете это в функции, которая объявлена как const. Уберите модификатор const и все должно получится. |
|
|
Valter |
7.2.2015, 21:56
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
lanz |
8.2.2015, 17:39
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Покажите код конструктора.
На всякий случай: проверьте от чего наследуется MainWindow (это должен быть QMainWindow или QWidget), проверьте что определен макрос Q_OBJECT. |
|
|
Valter |
8.2.2015, 18:30
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
lanz |
8.2.2015, 21:07
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Добавьте в начало файла
|
|
|
Valter |
9.2.2015, 22:30
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема решена, действительно, достаточно было добавить #include <QScrollBar>. А ведь в ui_mainwindow.h такое включение уже было, странно.
|
|
|
lanz |
10.2.2015, 9:19
Сообщение
#10
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
В ui_mainwindow.h обычно #include <QScrollArea> в котором QScrollBar forward-declared. А при вызове connect требуется знать что это наследник QObject.
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 1:26 |