Guten Abend,
ich habe ein kleines Problem mit Tastenklicks. Auf einem Formular sind zwei TableWidgets und mehrere BushButton platziert. Jetzt möchte ich, egal welches Widget gerade den Fokus hat, mit den Tasten links und rechts Einträge zwischen den TableWidgets verschieben. Zum ersten Test sollten bloß Label ihre Beschriftung ändern. Die Reaktion kam aber erst nach dem zweiten oder dritten Tastendruck oder garnicht. Könnt ihr mir helfen?
Erni35
keypressevent
ich habe jetzt die Quellen nicht parat. Habe mich aber an den Beispielen aus der Doku orientiert. im Dialog-Widgethabe ich eine keyPressEvent-Routine eingebaut. Dort sortiere ich, ob es ein keypress-Event und dann filtere ich die Tasten links und rechts heraus. Heute abend stelle ich die Quellen ein.
Erni35
Erni35
als erstes ist einer der drei Pushbutton aktiviert. Mit den Pfeilen kann ich zwischen den Schaltern hin und her wechseln und es wird kein keypressevent ausgelöst.
Hier der Startcode aus dem Constructor und die keyPress-Routine:
Der Dialog ist ein Mix aus Elementen im Designer zusammengesetzt und eigenen Komponenten. Das TableWidget ist vom Original abgeleitet und implementiert nur das Drag und Drop.
Erni35
Hier der Startcode aus dem Constructor und die keyPress-Routine:
Code: Alles auswählen
rennfolge_festlegen::rennfolge_festlegen(QWidget *parent, DBdef *datenbank) :
QDialog(parent),
m_ui(new Ui::rennfolge)
{
m_ui->setupUi(this);
setWindowTitle(datenbank->tabelle);
setAcceptDrops(true);
...
...
veranst_tabelle = new mein_TabletWidget(this);
...
}
void rennfolge_festlegen::keyPressEvent(QKeyEvent *event)
{
qDebug() << this->focusWidget()->accessibleName();
switch (event->key())
{
case Qt::Key_Left:
if (event->modifiers() & Qt::ControlModifier)
{
nachlinks();
break;
}
case Qt::Key_Right:
if (event->modifiers() & Qt::ControlModifier)
{
nachrechts();
break;
}
default:
QDialog::keyPressEvent(event);
}
}
Erni35
ein paar Sachen habe ich jetzt mit dem qDebug herausgefunden (Danke für den Hinweis).
Die Pfeiltasten werden vom Programm zum Springen zwischen den Komponenten genutzt. Auch in den TableWidgets wird so lange kein Debug-Ereignis geziegt, bis ich alle Spalten durchwandert bin.
Wie bringe ich meine Anwendung nun dazu die Pfeiltasten gleich an meine keypressEvent-Routine weiterzugeben??
Erni35
Die Pfeiltasten werden vom Programm zum Springen zwischen den Komponenten genutzt. Auch in den TableWidgets wird so lange kein Debug-Ereignis geziegt, bis ich alle Spalten durchwandert bin.
Wie bringe ich meine Anwendung nun dazu die Pfeiltasten gleich an meine keypressEvent-Routine weiterzugeben??
Erni35