(gelöst) Signal an Slot aus geerbter Klasse anbinden
Verfasst: 17. Mai 2006 21:37
Hallo Allerseits!
Ich mal wieder - und Signals und Slots mal wieder :S
Manchmal zweifel ich an Qt ^^ aber ich komm wirklich nicht weiter..
Mein Problem: Ich habe eine Klasse mit 3 Slots... verknüpfe ich einen Button in selbiger Klasse mit einem der Slots gehen diese auch alle!
Jetzt vererbe ich diese Klasse an eine andere Klasse, in welcher ein Button ist, den ich mit dem geerbten Slot verknüpfen will - nix passiert!!
Dieses Widget geht super und kann auch reset wenn ich den Slot innerhalb der Klasse aufrufe. Nun vererb ich das aber einer anderen Klasse und will von da aus auf den Slot zugreifen:
Wenn ich nu den reset Button drücke passiert: Nix...
Aber von der Logik her müsste es doch!? Soll ich die page_Basis.h auch posten? Wo könnte denn der Fehler liegen?
Schonmal vielen Dank!!
Win XP, MinGW, Qt 4
Ich mal wieder - und Signals und Slots mal wieder :S
Manchmal zweifel ich an Qt ^^ aber ich komm wirklich nicht weiter..
Mein Problem: Ich habe eine Klasse mit 3 Slots... verknüpfe ich einen Button in selbiger Klasse mit einem der Slots gehen diese auch alle!
Jetzt vererbe ich diese Klasse an eine andere Klasse, in welcher ein Button ist, den ich mit dem geerbten Slot verknüpfen will - nix passiert!!
Code: Alles auswählen
//lcd.h
#include <QWidget>
#include <QLCDNumber>
class Lcd : public QWidget
{
Q_OBJECT
public:
int Wert;
QLCDNumber *lcd;
Lcd(QWidget *parent = 0);
public slots:
void Plus();
void Minus();
void Reset();
};
Code: Alles auswählen
//lcd.cpp
#include <QtGui>
#include "lcd.h"
Lcd::Lcd(QWidget *parent)
: QWidget(parent)
{
Wert = 0;
QPushButton *plus = new QPushButton("+", this);
lcd = new QLCDNumber(1, this);
lcd->display(Wert);
QPushButton *minus = new QPushButton("-", this);
connect(plus, SIGNAL(clicked()), this, SLOT(Plus()));
connect(minus, SIGNAL(clicked()), this, SLOT(Minus()));
}
void Lcd::Reset(){
Wert=0;
lcd->display(Wert);
}
void Lcd::Plus(){
Wert++;
if(Wert > 9) {Wert=0;}
lcd->display(Wert);
}
void Lcd::Minus(){
Wert--;
if(Wert < 0) {Wert=9;}
lcd->display(Wert);
}
Code: Alles auswählen
//page_basis.cpp
#include <QtGui>
#include "page_basis.h"
#include "lcd.h"
page_Basis::page_Basis(QWidget *parent)
: QWidget(parent)
{
Imp_1 = new Lcd();
QPushButton *reset = new QPushButton("RESET");
//ich verschone euch mit dem Layout
connect(reset, SIGNAL(clicked()), Imp_1, SLOT(Reset()));
}
Aber von der Logik her müsste es doch!? Soll ich die page_Basis.h auch posten? Wo könnte denn der Fehler liegen?
Schonmal vielen Dank!!
Win XP, MinGW, Qt 4