Seite 1 von 1

QPushButton mit Shortkey belegen

Verfasst: 6. Dezember 2006 10:12
von Sathana
Hi zusammen,
hab gerade ein Anfängerproblem:
ich möchte QPushButtons mit Shortkeys belegen. Im Konstruktor von meinem Interface habe ich das hier stehen:
connect(this, SIGNAL(keyPressedEvent(QKeyEvent* e)), this, SLOT(keyPressEventStart(QKeyEvent *event) ));
das hier ist meine Funktion, aber das dürfte unwichtig sein:
void Interface::keyPressEventStart(QKeyEvent *event)
{
switch(event->key())
{
case Key_S:
startSensor();
...}
und mein Interface ist von QWidget abgeleitet:
Interface::Interface ( QWidget *parent, const char *name )
: QWidget( parent, name ){...}
Beim Kompilieren gibt die Konsole folgende Fehler aus:
QObject::connect: No such signal Interface::keyPressedEvent(QKeyEvent *e)
QObject::conect : (sencer name: 'unnamed')
QObject::connect: (receiver name: 'unnamed')
Schätze mal es liegt an einem Fehler im connect, allerdings bin ich im Moment ziemlich ratlos? Kann mir da irgendwer weiterhelfen??

Gruß Miri

Verfasst: 6. Dezember 2006 10:23
von dontinelli
Hallo Miri

Ich würde das mit einer Action machen:

Code: Alles auswählen

openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
openAct->setShortcut(tr("Ctrl+O"));
connect(openAct, SIGNAL(triggered()), this, SLOT(open()));

QPushButton *button = new QPushButton("&Open", this);
button->addAction(openAct);
Mehr zu QAction

Cheers
Don Tinelli

Verfasst: 6. Dezember 2006 13:08
von Sathana
Benutze Qt 3.3.3, da gibt es noch kein setShortcut.

Bin mir nicht sicher, aber ist es nicht möglich, dass bei meiner Version einfach nur das erste this falsch ist??

Verfasst: 6. Dezember 2006 13:19
von Flachkoepper
Dann nimm doch setAccel

Viele Grüße,
Flachkoepper

Verfasst: 6. Dezember 2006 14:08
von dontinelli
Guckst du hier:
http://doc.trolltech.com/3.3/qaction.html
Ein Blick in die Dokumentation löst die meisten probleme! Vor allem, wenn man schon eine Ahnung hat, in welche Richtung (hier QAction) die Lösung geht!
Mach dir sonst eine Bookmark von http://doc.trolltech.com/3.3/ . Lohnt sich wirklich.
Cheers
Don Tinelli