Я пытаюсь создать свой собственный виджет, основанный на QWidget. В конструкторе класса я есть:Qt виджет на основе QWidget
Square(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
Square::Square(QWidget *parent = 0, const char *name = 0, WFlags fl)
: QWidget(parent, name, f)
{
if (!name)
setName("Game");
reset();
underMouse=false;
}
Но я вижу ошибку: 'WFlags' не был объявлен
Теперь я переделал свой код:
class Square : public QWidget
{
Q_OBJECT
public:
Square(QWidget *parent = 0);
};
и в квадрате. каст:
Square::Square(QWidget *parent)
: QWidget(parent)
{
}
Но я вижу ошибку:
Ошибка: неопределенная ссылка на `виртуальные таблицы для Square»
ошибки: collect2: л.д. возвращается статус 1 выхода Что случилось? Как я могу объявить конструктор класса, основанного на QWidget?
спасибо.
Это, вероятно, опечатка, но ваше имя параметра - 'fl', а имя, которое вы передаете конструктору QWidget, -' f'. –
Повторно запустите qmake и проверьте, не исчезла ли ошибка vtable. –
См. Http://stackoverflow.com/questions/2555816/qt-object-linker-problem-undefined-reverence-to-vtable –