Я просто хочу сделать программу в Qt, где вы нажимаете одну из двух кнопок, а текст QLabel изменяется в зависимости от кнопки, которую вы изменили. При запуске скрипта я получаю ошибку во время выполнения. Я сделал «обычай» класс окна для этой программы:Qt Runtime Ошибка при использовании производного класса
Это заголовочный файл:
#ifndef MW_H
#define MW_H
#include <QString>
#include <QPushButton>
#include <QLabel>
#include <QGridLayout>
#include <QDialog>
class MW: public QDialog
{
Q_OBJECT
private:
QPushButton* one;
QPushButton* two;
QLabel* three;
QGridLayout* mainL;
public:
MW();
private slots:
void click_1();
void click_2();
};
#endif // MW_H
Это .cpp для заголовка:
#include "MW.h"
MW :: MW()
{
//create needed variables
QGridLayout* mainL = new QGridLayout;
QPushButton* one = new QPushButton("Set1");
QPushButton* two = new QPushButton("Set2");
QLabel* three = new QLabel("This text will be changed");
//connect signals and slots
connect(one, SIGNAL(clicked()), this, SLOT(click_1()));
connect(two, SIGNAL(clicked()), this, SLOT(click_2()));
// create layout
mainL->addWidget(one, 1, 0);
mainL->addWidget(two, 1, 1);
mainL->addWidget(three, 0, 1);
setLayout(mainL);
}
void MW :: click_1()
{
three->setText("One Clicked me!");
}
void MW :: click_2()
{
three->setText("Two Clicked me!");
}
И, наконец, это основная функция:
#include <QApplication>
#include "MW.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MW w;
w.setAttribute(Qt::WA_QuitOnClose);
w.show();
return a.exec();
}
Это третья или маленькая программа обучения, которую я выполняю, и я застреваю в са я проблема. Он начинает немного раздражать. Любая помощь будет оценена.
Вы пробовали идти через него с отладчиком? Ошибка вызывается только при нажатии одной из кнопок, да? Ударь это, я понял. –
Вам будет легче помочь, если вы опубликуете сообщение об ошибке, которое вы получили – niculare
. Дело в том, что он иногда компилируется, и когда я что-то сбой, или когда он не компилируется, я получаю следующие ошибки: MW.obj: -1 : ошибка: LNK2001: неразрешенный внешний символ "public: virtual struct QMetaObject const * __thiscall MW :: metaObject (void) const" (? metaObject @ MW @@ UBEPBUQMetaObject @@ XZ) MW.obj: -1: ошибка: LNK2001 : неразрешенный внешний символ "public: virtual void * __thiscall MW :: qt_metacast (char const *)" (? qt_metacast @ MW @@ UAEPAXPBD @ Z) release \ untitled19.exe: -1: ошибка: LNK1120: 3 нерешенных внешних – Bloodcount