Ich habe in meiner Applikation insgesamt vier Tabellen, die über Tabs angewählt werden. Eine dieser Tabellen darf nur nach Eingabe eines Passwortes eingesehen werden.
Irgendwie will es mir nicht gelingen eine bestimmtes TAB zu dis- bzw. enablen.
Kann mir jemand auf die Sprünge helfen?
Ich benutze PyQt4 Version 4.4.4
Kann man einen von mehreren tableView gezielt sperren?
- klaus66
- User
- Beiträge: 51
- Registriert: Mittwoch 11. März 2009, 09:26
- Wohnort: Bergisch Gladbach-Bensberg
Mit freundlichem Gruß Klaus
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Code: Alles auswählen
tabWidget.setTabEnabled(index, False)
Wenn du den index nicht kennst kannst du ihn mittels
Code: Alles auswählen
tabWidget.indexOf(widget)
Was verwendest du denn als Doku, wenn ich fragen darf?
- klaus66
- User
- Beiträge: 51
- Registriert: Mittwoch 11. März 2009, 09:26
- Wohnort: Bergisch Gladbach-Bensberg
Hi franzf,
danke für Deinen Tip, der auf Anhieb leider nicht funktioniert hat.
Es wäre gut, wenn Du Quellen angeben würdest, damit ich nachlesen kann. Schließlich möchte ich immer dazu lernen.
Ich hab jetzt das Problem anders gelöst. Mit der Passworteingabe beim Start wird eine Bool-Variable gesetzt, die ich beim Aufbau der Tabellen abfrage. Nur wenn das Administrator PW eingegeben wurde, wird für die vierte Tabelle das Tab mit Text gesetzt, sodass die Tabelle eingesehen und verändert werden kann. Soll die Berechtigung geändert werden, muss halt neu gestartet werden.
Das reicht mir im Moment. Wenn Du mir noch mitteilen könntest, wo ich die von Dir vorgeschlagene Lösung in der Dolu finde, wäre ich Dir dankbar.
danke für Deinen Tip, der auf Anhieb leider nicht funktioniert hat.
Es wäre gut, wenn Du Quellen angeben würdest, damit ich nachlesen kann. Schließlich möchte ich immer dazu lernen.
Ich hab jetzt das Problem anders gelöst. Mit der Passworteingabe beim Start wird eine Bool-Variable gesetzt, die ich beim Aufbau der Tabellen abfrage. Nur wenn das Administrator PW eingegeben wurde, wird für die vierte Tabelle das Tab mit Text gesetzt, sodass die Tabelle eingesehen und verändert werden kann. Soll die Berechtigung geändert werden, muss halt neu gestartet werden.
Das reicht mir im Moment. Wenn Du mir noch mitteilen könntest, wo ich die von Dir vorgeschlagene Lösung in der Dolu finde, wäre ich Dir dankbar.
Mit freundlichem Gruß Klaus
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Na hier:klaus66 hat geschrieben:danke für Deinen Tip, der auf Anhieb leider nicht funktioniert hat.
Es wäre gut, wenn Du Quellen angeben würdest, damit ich nachlesen kann. Schließlich möchte ich immer dazu lernen.
http://doc.trolltech.com/4.4/qtabwidget ... TabEnabled
Und PyQt4-4.5 (ich hab nachgeschaut, das ist genauso schon in 4.4 und sogar schon in 4.2 vorhanden):
http://www.riverbankcomputing.com/stati ... TabEnabled
Zeig deinen Code, dann wissen wir was falsch läuft (und bitte genaue Fehlermeldungen bzw. erwartetes und beobachtetes Verhalten). Steht eigentlich was in der Console?
- klaus66
- User
- Beiträge: 51
- Registriert: Mittwoch 11. März 2009, 09:26
- Wohnort: Bergisch Gladbach-Bensberg
Hallo franzf,
ich hab mich noch mal schlau gemacht und etwas experimentiert.
tab4 ist das Tabellen Widget und Admin ist True wenn das Administrator Passwort eingegeben wurde.
Dein Tip funktioniert schon, allerdings wird die betreffendeTabelle noch mit reduzierter Stärke angezeigt und die Eingabe in die Tabelle ist gesperrt.
Ich brauch das Sperren der Auswahl der betreffenden Tabelle, so dass sie weder angezeigt noch bedient werden kann. Der Grund hierfür ist der Schutz der Kalkulationsdaten, die nur die berechtigte Person (Admin) einsehen und verändern können soll.
Hast Du eine Idee, wie man das Auswahl-Tab einer Tabelle sperren kann?
Mir ist dazu nur diese Lösung eingefallen:
ich hab mich noch mal schlau gemacht und etwas experimentiert.
Code: Alles auswählen
tab4.setEnabled(Admin)
Dein Tip funktioniert schon, allerdings wird die betreffendeTabelle noch mit reduzierter Stärke angezeigt und die Eingabe in die Tabelle ist gesperrt.
Ich brauch das Sperren der Auswahl der betreffenden Tabelle, so dass sie weder angezeigt noch bedient werden kann. Der Grund hierfür ist der Schutz der Kalkulationsdaten, die nur die berechtigte Person (Admin) einsehen und verändern können soll.
Hast Du eine Idee, wie man das Auswahl-Tab einer Tabelle sperren kann?
Mir ist dazu nur diese Lösung eingefallen:
Code: Alles auswählen
if Admin:
self.AuftragTabelle.addTab(tab4, self.tr("Preise"))
Mit freundlichem Gruß Klaus
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Lies dir das doch GENAUER durch, was man dir schreibt.
nicht setEnabled sondern setTabEnabled!
Ist ne Methode von QTabWidget.
Einfach ein Beispiel, dass du es siehst wie es geht:
nicht setEnabled sondern setTabEnabled!
Ist ne Methode von QTabWidget.
Einfach ein Beispiel, dass du es siehst wie es geht:
Code: Alles auswählen
from PyQt4.Qt import *
import sys
app = QApplication(sys.argv)
tab = QTabWidget()
tab.addTab(QLabel("Tab 1", tab), "Tab 1")
tab.addTab(QLabel("Tab 2", tab), "Tab 2")
tab.addTab(QLabel("Tab 3", tab), "Tab 3")
tab.setTabEnabled(1, False) # HIER HIER HIER
tab.show()
app.exec_()
- klaus66
- User
- Beiträge: 51
- Registriert: Mittwoch 11. März 2009, 09:26
- Wohnort: Bergisch Gladbach-Bensberg
Sorry, das was ich kopiert hatte war das, was ich zum Laufen gebracht hatte. Mit dem Statement "setTabEnabled" bekam ich immer eine Fehlermeldung. Inzwischen weiß ich auch warum.
So sieht es jetzt aus und funktioniert auch, wie es sollte. Mein Fehler war, dass ich in der letzten zeile nicht das QTabWidget "AuftragTabelle" sondern das QWidget (die Tabelle) "tab4" angegeben hatte.
Ganz schön blöd!
Danke für Deine Hilfe.
Code: Alles auswählen
self.AuftragTabelle.addTab(tab1, self.tr("Auftrag"))
self.AuftragTabelle.addTab(tab2, self.tr("Bestellen"))
self.AuftragTabelle.addTab(tab3, self.tr("Lieferanten"))
self.AuftragTabelle.addTab(tab4, self.tr("Preise"))
self.AuftragTabelle.setTabEnabled(3, Admin)
Ganz schön blöd!
Danke für Deine Hilfe.
Mit freundlichem Gruß Klaus
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\
Das Geheimnis des Könnens liegt im Wollen!
Ubuntu 9.10 64Bit, AMD Athlon 64/Opteron 3200+, 1GB RAM, NVIDIA GeForce7, 250GB SATA 80GB USB und Asus Eee PC 4G mit Ubuntu-eee-8.04.1\\