SIGNAL: QTableWidgetItem mit Checkbox??

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
Traggger
User
Beiträge: 27
Registriert: Mittwoch 17. Dezember 2008, 11:33
Wohnort: Regensburg

Hi Leute,

ich habe eine QTableWidget, und in der ersten Spalte erhalten die QTableWidgetItems eine Checkbox dazu.
Bei jeder veränderung lasse ich prüfen ob sich der checkState geändert hat, und stelle dann den Hintergrund des QTableWidgetItems farbig dar, in Abhängigkeit des checkState.

Soweit sogut... Das funktioniert sehr gut mit der Maus, aber ich finde kein Signal was gesetzt wird wenn ich den checkState mit der Leertaste setze :(

Kann mir da jemand helfen, welches Signal da gesetzt wird??

MfG Traggger
There are 10 kinds of people. Those who understand binary notation, and those who do not.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ich werde aus deinem Text nicht schlau, was du momentan machst. Ein wenig Source waere da hilfreich.

Laut Qt Dokumentation, wird das ``stateChanged(int)`` Signal immer gesendet wenn, der Benutzer die CheckBox veraendert.
http://doc.trolltech.com/4.5/qcheckbox. ... ateChanged
Benutzeravatar
Traggger
User
Beiträge: 27
Registriert: Mittwoch 17. Dezember 2008, 11:33
Wohnort: Regensburg

Mhhh,

für eine normale Checkbox schon, aber scheinbar nicht für die in einem ItemView integrierte?!?!

So schaut es im Moment aus:
SourceCode


Was ich noch abfangen muß is des Setzen des checkState mittels der Leertaste, finde aber kein SIGNAL das darauf anspringt. :(
Zuletzt geändert von Traggger am Donnerstag 27. August 2009, 14:02, insgesamt 1-mal geändert.
There are 10 kinds of people. Those who understand binary notation, and those who do not.
lunar

Lagere derart lange Quelltextbeispiele bitte in ein Pastebin wie http://paste.pocoo.org aus, damit man Deinen Beitrag besser lesen kann.

QStringList solltest Du nicht direkt verwenden, eine normale Python-Liste entspricht eher dem guten Stil (und ist auch für die Augen eines Python-Programmierers besser lesbar als die Stream-Operatoren, die von C++ übernommen wurden). Außerdem solltest Du Dir den extensiven Gebrauch doppelter Unterstriche abgewöhnen. Nutze allenfalls einen einfachen Unterstrich für private Attribute.

Die QTableWidget-Klasse sendet das Signal ".itemChanged()" aus, wenn sich ein Item irgendwie (auch im Bezug auf die Checkbox) ändert (Beispiel).
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Entfernen des doppelten Codes, ein ausgiebiger Blick in PEP 8 und Konstanten könnten dem Programm auch nicht schaden ;-)
Das Leben ist wie ein Tennisball.
Benutzeravatar
Traggger
User
Beiträge: 27
Registriert: Mittwoch 17. Dezember 2008, 11:33
Wohnort: Regensburg

Danke für die Tipps...

Aber:

Das mit den __ und _ soll wie genau funktionieren?? Und warum soll ich keine __ verwenden???

EyDu hat geschrieben:Entfernen des doppelten Codes, ein ausgiebiger Blick in PEP 8 und Konstanten könnten dem Programm auch nicht schaden ;-)
Was genau meinst du mit Konstanten???
There are 10 kinds of people. Those who understand binary notation, and those who do not.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Weil es keine ``private`` in Python gibt: http://docs.python.org/3.1/tutorial/cla ... -variables

Weiteres in PEP8.
Benutzeravatar
Traggger
User
Beiträge: 27
Registriert: Mittwoch 17. Dezember 2008, 11:33
Wohnort: Regensburg

Mhhh, ok

aber warum geht dann folgendes:
Bsp Vererbung

mit diesem Output bei mir:

Bild


Also muß es doch sowas geben oder?? Protected scheint es nicht zu geben...
There are 10 kinds of people. Those who understand binary notation, and those who do not.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Traggger hat geschrieben:Also muß es doch sowas geben oder?? Protected scheint es nicht zu geben...
Nein, __ bedeutet nur Name-Mangling. Wenn man auf den umgeschrienenen Namen zugreift kommen keine Exceptions mehr.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dann teste doch mal http://paste.pocoo.org/show/136557/

Wie gesagt: Diese Konzepte gibt es in Python nicht. Alles was passiert ist Name Mangling.
Benutzeravatar
Traggger
User
Beiträge: 27
Registriert: Mittwoch 17. Dezember 2008, 11:33
Wohnort: Regensburg

Danke für die Erklärungen,

wieder was dazu gelernt! :)
There are 10 kinds of people. Those who understand binary notation, and those who do not.
Antworten