QPushButton mit Shortkey belegen

Verschiedenes zu Qt
Antworten
Sathana
Beiträge: 3
Registriert: 6. Dezember 2006 09:35

QPushButton mit Shortkey belegen

Beitrag 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
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag 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
Sathana
Beiträge: 3
Registriert: 6. Dezember 2006 09:35

Beitrag 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??
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Dann nimm doch setAccel

Viele Grüße,
Flachkoepper
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag 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
Antworten