Что бы увидеть радугу нужно пережить дождь
Привет! Помогите пожалуйста понять, в чем может быть ошибка. Мне нужно написать простеньку программку на Qt.
Но у меня начали выдаваться вот такие ошибки, как на картинке. не могли бы вы подсказать что может быть не так?
http://static.diary.ru/userdir/9/1/1/5/911529/33611193.jpg

Комментарии
15.10.2008 в 12:24

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
Есть подозрение, что файл, в котором определен класс Label, не включен в проект.
15.10.2008 в 12:46

Что бы увидеть радугу нужно пережить дождь
Flex Ferrum нее, это исключено. программка маленькая и вся описана в одном файле. то есть в main.cpp, который явно включен в проект
15.10.2008 в 12:52

капелюх чарiвника
исходничек-то дайте
15.10.2008 в 12:56

Что бы увидеть радугу нужно пережить дождь
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

class Label : public QWidget{
Q_OBJECT
public:
Label(QWidget *parent=0);

public slots:
void onFont(QFont q);

private:
QLabel *l;
};

Label::Label(QWidget *parent)
:QWidget(parent)
{
QLabel *l = new QLabel(QString("text"));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(l);

setLayout(layout);

}

void Label::onFont(QFont q){
l->setFont(q);


}


class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = 0);
};

MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
QPushButton *quit = new QPushButton(tr("Quit"));
quit->setFont(QFont("Times", 18, QFont::Bold));

QFontComboBox *fontcombobox = new QFontComboBox();

Label *label = new Label();

connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
connect(fontcombobox, SIGNAL(currentFontChanged(QFont)),
label, SLOT(onFont(QFont)));

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(quit);
layout->addWidget(fontcombobox);
layout->addWidget(label);
setLayout(layout);
}

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
15.10.2008 в 13:01

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
griffonya, вынесете объявление класса Label в отдельный h-файл, и добавьте этот класс в секцию HEADERS pro-файла.
15.10.2008 в 13:04

капелюх чарiвника
да. классы, содержащие Q_OBJECT, не могут находиться в .cpp файлах. moc их не умеет обрабатывать.
15.10.2008 в 13:20

Что бы увидеть радугу нужно пережить дождь
Flex Ferrum, mistificator спасибо большое. я это как-то пропустила.
15.10.2008 в 14:42

на будущее: у мя таблица так же терялась когда я хотел указатель на наследованый клас с виртуальными функциями протащить через воид*.
16.10.2008 в 00:23

капелюх чарiвника
slackovod, причём здесь vtable? Другая проблема обсуждалась вроде бы.
И в чём проблема с передачей указателя на объект класса через void *, если не секрет? Если можно, то лучше пояснить фрагментом кода.
16.10.2008 в 05:06

mistificator попробуйте - узнаете, кеке.
код думаю слишком очевиден чтобы приводить.
16.10.2008 в 13:55

капелюх чарiвника
slackovod, пока что я вижу, что Вы лентяй.
Ниже привожу код, где через void * в функцию Test передаётся объект класса B. Код работает. Теперь поясните Вашу мысль, с которой Вы начали.

17.10.2008 в 12:48

mistificator аднака... чет про этот каст я и забыл