(gelöst) Signal an Slot aus geerbter Klasse anbinden

Alles rund um die Programmierung mit Qt
Antworten
coffeejunky24
Beiträge: 16
Registriert: 24. April 2006 20:49
Wohnort: RhPf
Kontaktdaten:

(gelöst) Signal an Slot aus geerbter Klasse anbinden

Beitrag von coffeejunky24 »

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!!

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);
} 
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:

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())); 
    }
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
coffeejunky24
Beiträge: 16
Registriert: 24. April 2006 20:49
Wohnort: RhPf
Kontaktdaten:

Beitrag von coffeejunky24 »

Umm habs grade rausgefunden!

Ich hatte die connects am Ende des Konstruktors, nach den Layouts, stehen.

Wenn ich die connects direkt hinter die entsprechenden Buttons mach geht es..

Komisch an für sich....
Antworten