[gelöst] seltsames Verhalten von Slots

Alles rund um die Programmierung mit Qt
Antworten
theRiddler
Beiträge: 13
Registriert: 6. Mai 2006 12:23
Kontaktdaten:

[gelöst] seltsames Verhalten von Slots

Beitrag von theRiddler »

Hi

Ich erweitere/ändere ein bestehendes Programm das mittels QT Designer erstellt wurde, aber ich arbeite ohne QTDesigner (nur codn). Das war bis jetzt auch kein Problem, jetzt will ich neue Buttons etc. in die Oberfläche einbauen - mit den dazugehörigen Slots.

Das Problem ist, dass das connect noch funktioniert und das SIGNAL ausgelöst wird, aber der SLOT nicht. Ändere ich den SLOT auf einen, der nicht von mir hinzugefügt wurde - so funktionierts.
Ändere ich den Inhalt den bestehenden SLOTs, sodass dürch diesen mein SLOT ausgeführt wird - funktionierts auch.
Nur wenn ich meinen SLOT direkt im connect angebe, wird er ignoriert.

(Ich habe schon alle files neu compiliert und de moc neu erstellt ;) - .ui werden auch keine mehr verwendet)

Hat jemand eine Idee?

Code: Alles auswählen

fileMenu = new QPopupMenu( this );
fileNewAction->addTo( fileMenu );
fileOpenAction->addTo( fileMenu );
fileInsertAction->addTo( fileMenu );
fileImportEntAction->addTo( fileMenu);//meins
fileSaveAction->addTo( fileMenu );
fileSaveAsAction->addTo( fileMenu );

connect( fileNewAction, SIGNAL( activated() ), this, SLOT( fileNew() ) );
connect( fileOpenAction, SIGNAL( activated() ), this, SLOT( fileOpen() ) );
connect( fileImportEntAction, SIGNAL( activated() ), this, SLOT( changeMouse(2) ) );//meins
connect( fileSaveAction, SIGNAL( activated() ), this, SLOT( fileSave() ) );
QT3.3

Danke!
Zuletzt geändert von theRiddler am 13. September 2006 16:09, insgesamt 1-mal geändert.
rmeeh
Beiträge: 32
Registriert: 10. September 2006 18:59
Wohnort: Geislingen
Kontaktdaten:

Beitrag von rmeeh »

Hi,
hast Du den Slot in der Header Datei als "virtual void....." deklariert?
und an das Macro Q_OBJECT gedacht?

Ein Slot ist virtuell, hast Du das vergessen, wird er nie aufgerufen.......
-Ralf-
Kein Tag kommt wieder, vergessene Fehler schon....
theRiddler
Beiträge: 13
Registriert: 6. Mai 2006 12:23
Kontaktdaten:

Beitrag von theRiddler »

Hi.

Ja hab ich alles gemacht!

Hier der entsprechende Code im Header:

Code: Alles auswählen

...
class QTabWidget;
class QCheckBox;

class OSGMainView : public QMainWindow
{
    Q_OBJECT

public:
    OSGMainView( QWidget* parent = 0, const char* name = 0, WFlags fl = WType_TopLevel );
    ~OSGMainView();

    QTabWidget* tabView;
    QCheckBox* checkStat;
...

public slots:
    virtual void init();
    virtual void setStatistics( bool val );
...
    virtual void changeMouse( int buttonPos ); //mein SLOT
...
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: seltsames Verhalten von Slots

Beitrag von macman »

theRiddler hat geschrieben:

Code: Alles auswählen

connect( fileImportEntAction, SIGNAL( activated() ), this, SLOT( changeMouse(2) ) );//meins
Der kann nicht funktionieren. Kommt da keine Fehlermeldung beim debuggen? Man kann keine festen Werte bei Slots übergeben, das ging noch nie.
theRiddler
Beiträge: 13
Registriert: 6. Mai 2006 12:23
Kontaktdaten:

Beitrag von theRiddler »

Das wars... Vielen Dank!
Antworten