March 22, 2012

Robert B. Robert B.
Lab Rat
11 posts

QTableWidget->editorClose() Signal abfangen

 

Ich habe mit eine Testumgebung zusammengestellt in der ich zu einer Datenbank verbinde und den Inhalt einer bestimmten Tabelle darstelle.

Nun habe ich das Problem das ich mit der Taste “Qt::Key_Return” jeweils eine Zelle weiter springen möchte.
Hierfür habe ich mir auch schon ein paar Funktionen zusammen gebastelt damit der “Qt::Key_Return” so funktioniert wie der “Qt::Key_Tab”.
Meine Idee war einfach das QTableWidget->editorClose(); zu nutzen um, wenn dieses ausgelößt wird ,in die nächste Celle zu springen. Da diese Funktion protected ist habe ich leider keinen Zugriff darauf.

Ich habe auch versucht mit einem CloseEvent zu arbeiten aber auch ohne Erfolg..

LG

5 replies

March 22, 2012

koahnig koahnig
Area 51 Engineer
2880 posts

Dies sieht eher nach einer Anwendung für signals aus. Z.B. currentCellChanged [qt-project.org] und vielleicht auch die anderen Signale anschauen. Vielleicht ist etwas passendes dabei.

March 22, 2012

Volker Volker
Ant Farmer
5428 posts

Du kannst eine Subklasse von QTableWidget erstellen, dort hast Du Zugriff auf editorClose().

May 23, 2012

Robert B. Robert B.
Lab Rat
11 posts

Habe das Problem etwas anders gelößt:

  1.   connect(ui->tableWidget->itemDelegate (ui->tableWidget->currentIndex ()),SIGNAL(closeEditor(QWidget*)),this,SLOT(funktion()));

Somit kann ich jetzt in dem Slot “funktion()” weitere Funktionen an das “closeEditor();” anhhängen.

Danke für die Antworten.

July 7, 2012

franku franku
Lab Rat
135 posts

Aus Interesse, könnte ich auch den KeyEvent aus der Subclass von QTableWidget abfangen? Da müssten doch die Keys namentlich direkt rauskommen.

 Signature 

Keep in mind: This, Jen, is the internet.
.. frank

July 12, 2012

Volker Volker
Ant Farmer
5428 posts

Ja, entweder das. Oder einen eventFilter() verwenden, das spart die Subclass.

 
  ‹‹ Suche Qt Entwickler für kleineres Projekt      Nach Verstecken eines Zweitfensters im Hauptfenster Methode ausführen ››

You must log in to post a reply. Not a member yet? Register here!