1 / 1 / 1
Регистрация: 02.01.2013
Сообщений: 123
1

Undefined reference to `vtable for Vim'

04.09.2013, 00:20. Показов 1279. Ответов 9
Метки нет (Все метки)

Привет всем! пользуесь линуксом...установил qt creator 2.7.2 qt 5.1.0 ...
написал самый простой слот и он почему то не работает ...
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Vim : public Ui::Widget, public QWidget
{
    Q_OBJECT
public:
    Vim(QWidget* pwgt = 0) : QWidget(pwgt)
    {
        setupUi(this);
        m_scene.setSceneRect(graphicsView->sceneRect());
        graphicsView->setScene(&m_scene);
        graphicsView->setRenderHint(QPainter::Antialiasing, true);
    }
    ~Vim()
    {
 
    }
public slots:
    void qwer()
    {
        m_scene.addLine(50, 50, 100, 100);
    }
 
private:
    QGraphicsScene m_scene;
};
клиенсткая часть
C++ (Qt)
1
2
3
4
5
6
7
8
9
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Vim g;
    QObject::connect(g.pushButton, SIGNAL(clicked()), &g, SLOT(qwer()));
    g.show();
    
    return a.exec();
}
у меня постоянно вылетает непонятные ошибки...но если убрать макрос Q_OBJECT, то норм компилируется , но при этом не работает слот(т.е. нажимаешь кнопку и нечего не происходит) что я не правильно делаю ? помнию в ранним версиях qt ( кажется 4.8) такой фигне не было , было все оч просто!
Миниатюры
Undefined reference to `vtable for Vim'  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2013, 00:20
Ответы с готовыми решениями:

undefined reference to `vtable for TLabel'
Добрый вечер . Помогите исправить ошибку . Пишу свою первую программу в Qt Creator , которая должна...

Undefined reference to `vtable for MClas'
Обнаглел настолько, что решил попробовать себя в самостоятельном творчестве И получил такую ошибку...

Undefined reference to `vtable. И еще
Ошибки: tree.cpp:8: ошибка: undefined reference to `vtable for Tree' tree.cpp:66: ошибка:...

Q_OBJECT undefined reference to vtable
Не могу понять почему ругается компилер на виртуальные таблицы при добавлении макроса Q_OBJECT....

9
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
04.09.2013, 00:38 2
C++ (Qt)
1
public QWidget, public Ui::Widget
Так работает?
0
1 / 1 / 1
Регистрация: 02.01.2013
Сообщений: 123
04.09.2013, 00:40  [ТС] 3
zenw, нет, все также...
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
05.09.2013, 21:27 4
Эмм
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace Ui {
class Vim;
}
 
class Vim : public QWidget
{
    Q_OBJECT
 
private:
    QGraphicsScene m_scene;
    Ui::Vim *ui;
 
public:
    Vim(QWidget* pwgt = 0) : QWidget(pwgt), ui(Ui::Widget)
    {
        ui->setupUi(this);
        m_scene.setSceneRect(graphicsView->sceneRect());
        graphicsView->setScene(&m_scene);
        graphicsView->setRenderHint(QPainter::Antialiasing, true);
    }
    ~Vim()
    {
        delete ui;
    }
public slots:
    void qwer()
    {
        m_scene.addLine(50, 50, 100, 100);
    }
};
попробуй так. А вообще, если не поможет, попробуй вынести весь код в отдельный .cpp
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
05.09.2013, 23:38 5
а) Измени любым способом (хоть добавь и убери пробел) .pro файл проекта
б) Пересобери проект
0
Эксперт С++
5035 / 2614 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
06.09.2013, 00:05 6
Цитата Сообщение от Flassie Посмотреть сообщение
Измени любым способом (хоть добавь и убери пробел) .pro файл проекта
Шаманство какое-то Не проще ли qmake запустить отдельно?
1
Flassie
06.09.2013, 00:13
  #7

Не по теме:

Цитата Сообщение от fasked Посмотреть сообщение
Шаманство какое-то :) Не проще ли qmake запустить отдельно?
Работающее шаманство) Тем более как-то проще это, чем отдельно запускать qmake)

0
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
06.09.2013, 08:26 8
Цитата Сообщение от Flassie Посмотреть сообщение
Работающее шаманство) Тем более как-то проще это, чем отдельно запускать qmake)
Да неужели так сложно? В Qt Creator щелчок правой кнопкой по проекту - "Запустить qmake"
0
1 / 1 / 1
Регистрация: 02.01.2013
Сообщений: 123
06.09.2013, 09:37  [ТС] 9
не знаю почему , но теперь компилируется... может в qt creator был клюк какой то...
0
7 / 7 / 1
Регистрация: 23.02.2013
Сообщений: 24
12.09.2013, 22:14 10
Лучший ответ Сообщение было отмечено как решение

Решение

Такая ошибка обычно говорит, что нужно запустить qmake, так как если начинаете прописывать сигналы и слоты в классе где их до этого не было и qmake в момент запуска не знал, что этот класс будет наследником QObject, то в make файле не прописал запуск moc вашего класса. Чтобы moc обработал ваш класс необходимо запускать qmake.
4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2013, 22:14
Помогаю со студенческими работами здесь

Qt5/CMake undefined reference to 'vtable '
В qmake собирает, а с cmake проблемы. Помогите разобраться. Структура проекта: include src...

Ошибка: undefined reference to `vtable for MySlot'
#include <QApplication> #include <QWidget> #include <QObject> #include <QtCore> class MySlot :...

Main.cpp:10: ошибка: undefined reference to `vtable for A'
вот такая легкая программа не компилируется: #include <QCoreApplication> #include <QObject>...

Ошибка "undefined reference to'vtable for Triangle'"
Здравствуйте, Показывает на конструктор, не дает запуститься программе. Проблемы: ошибка :...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru