ich bräuchte eure Hilfe, ich habe hier ein Problem, bei dem ich ziemlich auf dem Schlauch stehe.
Ausgangslage
Ich habe meine Oberfläche mit dem Designer gestaltet und anstatt ein paar Buttons habe ich 3 QLabel mit Pixmaps gefüllt. Diese Bilder sollen nun
klickbar gestaltet werden. Ich weiß das QLabel kein clicked() Event besitzt und ich deshalb eine subclass erstellen muss.
Vorgehensweiße
Anbei meine Subclass
CLICKABLELABEL_H
Code: Alles auswählen
#ifndef CLICKABLELABEL_H
#define CLICKABLELABEL_H
#include <QObject>
#include <QLabel>
class ClickableLabel : public QLabel
{
Q_OBJECT
public:
explicit ClickableLabel( const QString& text="", QWidget* parent=0 );
~ClickableLabel();
signals:
void clicked();
protected:
void mousePressEvent(QMouseEvent* event);
};
#endif // CLICKABLELABEL_H
Code: Alles auswählen
#include "clickablelabel.h"
ClickableLabel::ClickableLabel(const QString& text, QWidget* parent)
: QLabel(parent)
{
setText(text);
}
ClickableLabel::~ClickableLabel()
{
}
void ClickableLabel::mousePressEvent(QMouseEvent* event)
{
emit clicked();
}
Nun möchte ich in meiner mainwindow.cpp connects einrichten, damit beim anklicken eine bestimmte Funktion ausgeführt wird.
MAINWINDOW.H
Code: Alles auswählen
ClickableLabel *mLabel;
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mLabel = new ClickableLabel();
}
Ich hoffe mein Problem ist verständlich und es gibt hier ein paar freundliche Menschen, die mir unter die Arme greifen.
Mit freundlichem Gruß