Я новичок в C++, но я стараюсь учиться. Я получаю две ошибки, и я не знаю, почему, это:Я получаю две ошибки, но не могу их идентифицировать
- В конструкторе «MyLabel :: MyLabel (QWidget *)»:
- Квалифицированные-идентификатор в декларации перед «(» маркер - линия 7
- Квалифицированные-идентификатор в декларации перед '(' маркер -line20
Мой код выглядит следующим образом:
mylabel.cpp:
#include "mylabel.h"
#include "ui_mainwindow.h"
MyLabel::MyLabel(QWidget *parent) :
QWidget(parent)
{
void MyLabel::MyLabel()
{
this->setAlignment(Qt::AlignCenter);
//Default Label Value
this->setText("No Value");
//set MouseTracking true to capture mouse event even its key is not pressed
this->setMouseTracking(true);
}
void MyLabel::mouseMoveEvent(QMouseEvent * event)
{
//Show x and y coordinate values of mouse cursor here
this->setText("X:" + QString::number(event->x()) + "-- Y:" + QString::number(event->y()));
}
}
mylabel.h:
#ifndef MYLABEL_H
#define MYLABEL_H
#include <QObject>
#include <QApplication>
#include <QMainWindow>
#include <QMouseEvent>
class MyLabel : public QWidget
{
Q_OBJECT
public:
explicit MyLabel(QWidget *parent = 0);
~MyLabel();
void mouseMoveEvent(QMouseEvent * event);
signals:
};
#endif // MYLABEL_H
main.cpp
#include "mainwindow.h"
#include "mylabel.h"
#include <QApplication>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow *window = new QMainWindow();
window->setWindowTitle(QString::fromUtf8("QT - Capture Mouse Move"));
window->resize(300, 250);
QWidget *centralWidget = new QWidget(window);
QHBoxLayout* layout = new QHBoxLayout(centralWidget);
MyLabel* CoordinateLabel = new MyLabel();
layout->addWidget(CoordinateLabel);
window->setCentralWidget(centralWidget);
window->show();
return app.exec();
}
mainwindow.cpp пустым
Вы функции-члены, определенного в организме конструктора, переместите их за его пределы. –
Использование стороннего графического интерфейса - это не совсем лучший способ изучить язык программирования C++. –
Возможно, вы захотите подкласса QLabel, а не QWidget. @ChristianHackl Скажи, что хочешь, но вот как некоторые из моих друзей изначально узнали С ++. Чаще всего интереснее видеть ваше приложение на экране, чем, по крайней мере, выводимый текст. –