Seite 1 von 1

QTableWidget nicht Editierbar

Verfasst: 24. Januar 2006 10:16
von jaegermeister
Hallo

Ich habe ein QTableWidget Object. Wenn ich auf eine Zelle Doppelklicke öffnet sich ein Dialogfenster. Ich möchte aber nicht das der Cursor dann in der Zelle steht um Text einzu geben.

In der Doku hab ich bis jetzt nichts gefunden. Meine Idee ist das entsprechende Signal zu disconnecten, das Problem ist aber daran das ich nicht weiß zu welchem Signal das Editieren gehört.

Falls jemand Idee hat bitte schreiben.
Danke im voraus.
mfg jaegermeister

Verfasst: 24. Januar 2006 10:24
von russkij
hi,

weiss nicht ob ich Dich richtig verstanden habe,
und ob es bei Dir so machbar ist, ich bentze

tabelle->setColumnReadOnly( 1, true );
danach ist allerdings ganze spalte nicht edietierbar, doppelklich ist dennoch möglich

gruss

Verfasst: 24. Januar 2006 10:40
von jaegermeister
Danke für die schnelle Antwort.
Die Funktion gibt es anscheinden nicht bei mir. Ich benutze Qt4.1 OpenSourceEdition.

Ich denke du hast mich richtig verstanden. Und im Prinzip sollen alle Zellen der Tabelle nicht Editierbar sein.

Verfasst: 24. Januar 2006 11:04
von MichaelS
Hallo,

QTableWidget erbt die Methode setSelectionMode. Die QT 4.1 Doku sagt dazu folgendes:
This property controls whether the user can select one or many items and, in many-item selections, whether the selection must be a continuous range of items.
Ein möglicher Modus ist 'QAbstractItemView::NoSelection'.

Ich denke, damit sollte Dein Problem zu lösen sein.

Gruß Michael

Verfasst: 24. Januar 2006 11:14
von jaegermeister
Hi,

nein das Löst mein Problem leider auch nicht. Ich kann zwar mit einem einfachen Klick keine Zelle mehr selektieren, aber ich kann immernoch mit einem Doppelklick in den Editiermodus gelangen.

mfg jaegermeister

Verfasst: 24. Januar 2006 11:40
von MichaelS
Hast Du schon einmal versucht, die Eigenschaft SelectionBehavior auf QAbstractItemView::SelectRows zu setzen? Dann kann keine einzelne Zelle mehr, sondern nur noch eine ganze Zeile markiert werden. Eigentlich sollte dann auch keine einzelne Zelle mehr in den Editier-Modus kommen (getestet hjabe ich es allerdings nicht).

Gruß Michael

Verfasst: 24. Januar 2006 12:05
von jaegermeister
Der gleiche Effekt wie zuvor. Und ich hab festgestellt das ich mit Tab auch noch in den Editiermodus komm wenn ich will.

Das ist ein Projekt für die Berufsschule, ich weiß nicht wie genau der Lehrer gucken wird. Das Problem ist wenn ich einfach in der Zelle editieren kann, müssten die Daten auch übernommen werden, damit im Dialog, der beim Doppelklick auf eine Zelle kommt, auch die richtigen Daten kommen.

Das kann man bestimmt auch machen, aber das wollte ich eigentlich nicht unbedingt. Es gibt in der anderen Tabelle ein vorauswahl von Werte und da denn die Eingabe immer zu berichtigen ist auch schon wieder mehr Aufwand, der für dieses Projekt nicht unbedingt erforderlich ist.
Deshalb wollte ich den einfacheren Weg gehen.

mfg jaegermeister

Verfasst: 24. Januar 2006 12:23
von MichaelS
Laut Trolltech-Forum löst die Funktion setEditTriggers das Problem. Mit dieser Funktion kann eingestellt werden, welche Aktionen eine Zelle in den Editmodus versetzen. Setz die Eigenschaft auf QAbstractItemView::NoEditTriggers und es sollte Schluss sein mit dem Editieren.

Gruß Michael

Verfasst: 24. Januar 2006 12:48
von jaegermeister
Danke das löst mein Problem. Ok für das nächste mal merk ich mir alle Einstellungen im Designer zu Probieren.

Danke das ihr euch die Zeit genommen habt.

mfg jaegermeister