Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124

При наследовании класса QSlider происходит ошибка

09.06.2015, 02:21. Показов 1942. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Вопрос уже мучает второй день. Погуглил. Все предложеные варианты не сработали. Обращаюсь к вам.
Дело такое. Мне нужно что бы при отпускании кнопки мыши на ползунке переменная запоминала значение value у ползунка.
Как я понял, что бы это было возможно, нужно создать класс, уноследованный от QSlider.
C++
1
2
3
4
5
6
7
8
9
class SliderMem : public QSlider
{
public:
    SliderMem(QWidget * parent = 0);
protected:
    virtual void mouseMoveEvent(QMouseEvent * ev);
    virtual void mousePressEvent(QMouseEvent * ev);
    virtual void mouseReleaseEvent(QMouseEvent * ev);
};
Ошибка возникает в данном коде:
C++
1
2
3
4
SliderMem::SliderMem(QWidget * parent) : QSlider(parent)
{
 
}
Текст ошибки:
Кликните здесь для просмотра всего текста
/home/mrjone/qt_pro/easymakepc/easymakepc/wMain.cpp:57: error: undefined reference to `vtable for SliderMem'

Объясните в чём ошибка? Или лучше скажите как выполнить мою задачу.
Буду очень благодарен.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2015, 02:21
Ответы с готовыми решениями:

Ошибка при наследовании от класса Qtimer
В общем, вот у меня есть код: #include <QCoreApplication> #include <windows.h> #include <QDebug> #include <QTimer> class...

Ошибка при обращении из одного класса к методу другого класса
Структура проекта, 2 класса: класс графики MainWindow класс логики Сannibals при обращении из mainwindow к методу из cannibals...

QSlider и отображение текущего значения при его перемещении
Есть QSlider. Хочу чтобы когда я его перемещаю, возле него отображалось его текущее значение. Без переопределения класса QSlider не...

24
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
09.06.2015, 02:31
эвенты должны иметь реализацию, я так думаю
0
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
09.06.2015, 02:36  [ТС]
Цитата Сообщение от Flassie Посмотреть сообщение
эвенты должны иметь реализацию, я так думаю
Это понятно. Проблема то в том, что программа не комплируеться. Выбивает ошибку вот такую:
/home/mrjone/qt_pro/easymakepc/easymakepc/wMain.cpp:57: error: undefined reference to `vtable for SliderMem'
А строка 57 это:
C++ (Qt)
1
SliderMem::SliderMem(QWidget * parent) : QSlider(parent)
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
09.06.2015, 03:03
Я понимаю
Реализации виртуальных методов у вас присутствуют?
0
 Аватар для Pancir
59 / 46 / 11
Регистрация: 16.09.2014
Сообщений: 124
09.06.2015, 03:09
Непонятно чем вас не устроили сигналы испускаемые слайдером...
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
09.06.2015, 03:10
Цитата Сообщение от Pancir Посмотреть сообщение
Непонятно чем вас не устроили сигналы испускаемые слайдером...
Меня сигналы испускаемые слайдером устраивают. У вас сигналов нет. У вас есть нереализованные виртуальные методы, которые ОБЯЗАНЫ быть реализованы
0
 Аватар для Pancir
59 / 46 / 11
Регистрация: 16.09.2014
Сообщений: 124
09.06.2015, 03:12
Flassie у меня все реализовано )) это у автора нет и о сигналах я написал тоже ему...
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
09.06.2015, 03:14
Цитата Сообщение от Pancir Посмотреть сообщение
Flassie у меня все реализовано )) это у автора нет и о сигналах я написал тоже ему...

Не по теме:

Прошу прощения :)
Ночь, не посмотрел кто автор, а кто нет :)

0
66 / 66 / 18
Регистрация: 31.03.2015
Сообщений: 253
09.06.2015, 09:25
Нету деструктора мб. А вообще то подобный функционал без проблем пишется и без необходимости создания наследников. сигналы и евенты мощная штука
0
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
09.06.2015, 12:17  [ТС]
Можете сказать или скинуть манульчик как пользоваться сигналами? По своему устройству они меня полностью устраивают.
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
09.06.2015, 12:23
http://doc.crossplatform.ru/qt... slots.html
http://doc.qt.io/qt-5/qobject.html#connect
0
161 / 126 / 30
Регистрация: 30.05.2015
Сообщений: 380
09.06.2015, 13:30
нет макроса Q_OBJECT в начале класса. Вообще по опыту такое часто лечиться принудительным запуском qmake и пересборкой проекта.
1
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
09.06.2015, 14:36  [ТС]
Цитата Сообщение от Flassie Посмотреть сообщение
http://doc.crossplatform.ru/qt/4.3.2...sandslots.html
http://doc.qt.io/qt-5/qobject.html#connect
Возможно я туп, но мне не помогли эти сатитьи.
Можете показать пример?
0
161 / 126 / 30
Регистрация: 30.05.2015
Сообщений: 380
09.06.2015, 16:09
Не особо понятна конечная цель. Тестовый пример приложите к посту.
1
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
09.06.2015, 16:18  [ТС]
Вот весь проект
easymakepc.zip
0
161 / 126 / 30
Регистрация: 30.05.2015
Сообщений: 380
09.06.2015, 16:38
Что то не получилось его запустить. Но идею того, что надо - понял.
См. аттач
Вложения
Тип файла: rar Slider.rar (3.8 Кб, 4 просмотров)
1
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
09.06.2015, 16:57  [ТС]
Kurles, ваш код понял, но меня тут настигла неожиданная ошибка:
Кликните здесь для просмотра всего текста
/home/mrjone/qt_pro/easymakepc/easymakepc/wMain.cpp:44: error: 'connect' was not declared in this scope
this, SLOT(onValueCh(int)));

Не подскажете, что это может быть? Как это? connect не декларирован тут??
0
161 / 126 / 30
Регистрация: 30.05.2015
Сообщений: 380
09.06.2015, 17:01
Так как у тебя класс MainWindow не наследник от QObject, естественно он о нем не знает. Используй
C++ (Qt)
1
QObject::connect(..);
1
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
09.06.2015, 17:09  [ТС]
easymakepc.zip
Чёт всё плохо..
Кликните здесь для просмотра всего текста
/home/mrjone/qt_pro/easymakepc/easymakepc/wMain.cpp:44: note: cannot convert 'this' (type 'MainWindow* const') to type 'const QObject*'
this, SLOT(onValueCh(int)));

C++ (Qt)
1
2
QObject::connect(memory, SIGNAL(valueChanged(int)),
                        this, SLOT(onValueCh(int)));
Вот ошибка выбиватетсья в месте с предыдущей
Кликните здесь для просмотра всего текста
/home/mrjone/qt_pro/easymakepc/easymakepc/wMain.cpp:44: error: no matching function for call to 'QObject::connect(QSlider*&, const char*, MainWindow* const, const char*)'
this, SLOT(onValueCh(int)));
^
0
161 / 126 / 30
Регистрация: 30.05.2015
Сообщений: 380
09.06.2015, 19:49
MainWindow отнаследуй от QObject, метод onValue перенеси в секцию public slots.

Добавлено через 2 минуты
и первой строчкой в классе в хидере размести макрос Q_OBJECT

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MainWindow : public QObject
{
    Q_OBJECT
public:
    void CreateWindow();
    QWidget wMain;
    QLineEdit * countManey,
              * countManeyTo;
    QLabel * TextLbl[5];
    QString title;
    QPoint pointsCM[6],
           points[1];
    QSlider * memory;
    int memoryRAM;
public slots:
    void onValueCh(const int value);
};
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2015, 19:49
Помогаю со студенческими работами здесь

Ошибка при наследовании класса
Среда Visual Basic STUDIO’2010 Professional Наследование. Как устранить ошибку. Сделано согласно примеру MSDN'2008 Public Class...

Ошибка при наследовании класса
Всем доброго времени суток, пытаюсь отнаследовать класс, вот такой код я смастерил: #ifndef CLASS_H_ #define CLASS_H_ class stack ...

Ошибка: undefined reference to при наследовании класса
Здравствуйте форумчане. Пытаюсь наследовать класс MyService от OAuthService и получаю множество ошибок: Ошибка: undefined reference to...

Ошибка Web.config при наследовании класса MembershipProvider
Ситуация следующая. Унаследовал я класс MembershipProvider. Переопределил функции. Теперь есть свой класс под названием PowPlayProvider....

Что происходит с ABI при наследовании?
Привет. В общем столкнулся в проекте со странной проблемой, похожей на проблему с ABI. Вот в чем суть. Есть ServiceLocator, суть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru