Mit Python über Gconftool SplashScreen ändern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Mit Python über Gconftool SplashScreen ändern

Beitragvon Yoschi93 » Sonntag 20. Januar 2008, 13:23

Moin also ich sitze bei einer Sache fest :(
Ich möchte dass wenn ich zb Menüpunkt 1 auswähle dass man selber einen neuen Pfad für den SplashScreen eingeben soll.

Das Problem ist nur ich weiss nicht wie man das ändern sollen ich kann es nur so machen dass er ein Pfad aus der Funktionsammlung nehmen soll aber ich will es so machen dass der Anwender es bestimmt.

Edit : Wenn ihr mir Links gibt wo ich sowas suchen kann oder nachlesen oder mir helfen kann dann immerher damit :D

mfg Yoschi
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Sonntag 20. Januar 2008, 13:48

Ich kenne mich mit Gnome nicht aus und habe grad nur ergooglet, das dieses Tool wohl en Kommandozeilentool ist, mit dem man Einstellungen an dieser Gnome-Registry verändern kann. Ist das so richtig?

Evtl. solltest Du doch mal ein wenig mehr Infos darüber geben, was Du genau willst und was Du bsiher versucht hast.

Ich habe da z.B. von einer GUI nichts gesehen, oder worauf beziehst Du Dich mit "Eingabe"?

Fragen über Fragen ... ein schlechtes Zeichen, wenn man Hilfe erhalten will ;)

Also, gib mal mehr und bessere Infos, dann findet sich sicher eine Hilfe!
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Beitragvon Yoschi93 » Sonntag 20. Januar 2008, 14:37

So hier ist erstmal der Code zu verständlichkeit ;)

Wie ihr sieht ist dieses Programm nur dazu da um Bequemlich Änderungen an Gconf zu machen.
Jetzt will ich machen wenn ich de Option SplashScrenn verändern nehme dass ich einen neuen Pfad eingeben muss zu den neuen SplashScreen Bild.

Jetzt kommt das Problem ich weiss nicht wie man das realisieren sollte.

Wichtig ist ich will keine GUI haben ;)

Code: Alles auswählen

#!/usr/bin/python
beenden                     = 0

home_ordner_einblenden      = 1
home_ordner_ausblenden      = 2

papierkorb_einblenden       = 3
papierkorb_ausblenden       = 4

computer_einblenden         = 5
computer_ausblenden         = 6

mount_laufwerke_einblenden  = 7
mount_laufwerke_ausblenden  = 8

splashscreen_verändern = 9

import gconf

# Auswahlmenue
auswahlmenue = int(raw_input('''Waehlen sie bitte was sie machen wollen
      Desktop
   1. Persoenlicher Ordner einblenden
   2. Persoenlicher Ordner ausblenden

   3. Papierkorb einblenden
   4. Papierkorb ausblenden

   5. Computer einblenden
   6. Computer ausblenden

   7. Eingebundene Laufwerke einblenden
   8. Eingebundene Laufwerke ausblenden

   9. Splash Screen verändern

   Mit 0 beenden sie das Programm
= '''))

# Funktionsammlung
def ausblenden(key):
    client = gconf.client_get_default()
    client.set_bool(key, 0)
   
def einblenden(key):
    client = gconf.client_get_default()
    client.set_bool(key, 1)

# /Funktionsammlung

if auswahlmenue == home_ordner_einblenden:
   einblenden('''/apps/nautilus/desktop/home_icon_visible''')

if auswahlmenue == home_ordner_ausblenden:
   ausblenden('''/apps/nautilus/desktop/home_icon_visible''')

if auswahlmenue == papierkorb_einblenden:
   einblenden('''/apps/nautilus/desktop/trash_icon_visible''')

if auswahlmenue == papierkorb_ausblenden:
   ausblenden('''/apps/nautilus/desktop/trash_icon_visible''')

if auswahlmenue == computer_einblenden:
   einblenden('''/apps/nautilus/desktop/computer_icon_visible''')

if auswahlmenue == computer_ausblenden:
   ausblenden('''/apps/nautilus/desktop/computer_icon_visible''')

if auswahlmenue == mount_laufwerke_einblenden:
   einblenden('''/apps/nautilus/desktop/volumes_visible''')

if auswahlmenue == mount_laufwerke_ausblenden:
   ausblenden('''/apps/nautilus/desktop/volumes_visible''')
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Sonntag 20. Januar 2008, 15:06

Wie wärs mit raw_input()? Oder was genau meinst Du? (abgesehen davon, dass man den bisherigen Code mit Dictionarys wesentlich einfacher machen könnte)
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Beitragvon Yoschi93 » Sonntag 20. Januar 2008, 15:13

Wie wärs mit raw_input()? Oder was genau meinst Du? (abgesehen davon, dass man den bisherigen Code mit Dictionarys wesentlich einfacher machen könnte)

Danke für den Tipp Dictonarys werde ich mir mal ansehen :D

Oder was genau meinst Du?

-> Anwedungen -> Systemwerkzeuge -> Konfigurationseditor ->
/apps/gnome-session/options/splash_image -> Anklichen und nuen Pfad schreiben.

Dass will ich mit Python umsetzen so wie ich das mit den ausblenden und einblenden gemacht habe der Unterschied ist nur dass der Benutzer den Pfad selber eingibt und nicht aussucht.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Sonntag 20. Januar 2008, 16:22

Diese Angabe nützt mir nichts, weil ich kein Gnome nutze ;)

Ich verstehe immer noch nicht, wo das Problem liegt! Du musst doch nur den User bitten, eine Datei anzugeben. Diese holst Du Dir per raw_input() und übergibst sie dann der aus dem Modul zuständigen Funtkion / Methode!
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Beitragvon Yoschi93 » Sonntag 20. Januar 2008, 21:26

und übergibst sie dann der aus dem Modul zuständigen Funtkion / Methode!

Wie mache ich das übergeben?
Wenn du es nicht sagen willst so verweise bitte wo ich das nachlesen kann..
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 20. Januar 2008, 21:37

Wird wohl etwa so aussehen:

Code: Alles auswählen

splash = raw_input("The path? ")
client.set_string(key, splash)


Apropos: du kannst statt 0 und 1, wer hätte es gedacht, auch True und False verwenden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Beitragvon Yoschi93 » Montag 21. Januar 2008, 13:27

Habs jetzt angepasst und es funktioniert :D
Danke für eure Hilfe :)
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Beitragvon Yoschi93 » Donnerstag 7. Februar 2008, 19:45

Apropos: du kannst statt 0 und 1, wer hätte es gedacht, auch True und False verwenden.

Das wusste ich schon :D aber gibt es einen Befehl für Gegenteil?
Das heißt Gconftool (also über Python) kuckt ob es true oder false ist es true macht er es auf den Gegenteil false und false auf true.
So müsste man nicht extra 2.Menüpunkte machen.

Währe das möglich?
BlackJack

Beitragvon BlackJack » Donnerstag 7. Februar 2008, 20:09

Code: Alles auswählen

In [378]: not True
Out[378]: False

In [379]: not False
Out[379]: True
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Beitragvon Jan-Peer » Donnerstag 7. Februar 2008, 20:10

So:

Code: Alles auswählen

>>> a = True
>>> a ^ True
False
>>> a = False
>>> a ^ True
True
noise
User
Beiträge: 62
Registriert: Donnerstag 7. Februar 2008, 00:15

Beitragvon noise » Donnerstag 7. Februar 2008, 21:07

Oha, Bitweise Operator auf booleans? Davon würde ich ganz klar abraten. Nicht nur weil es Unpythonisch ist, sondern auch jedweder Logik entbehrt.
``True`` und ``False`` sollte nicht in diesem Kontext mit 1 und 0 gleichgesetzt werden. Das sind eigenständige singelton Objekte und keine alias für die integer 1 und 0. Lange rede kurzer Sinn, BlackJack's Variante ist vorzuziehen.

Kann mir vielleicht einer erklären warum das in Python dennoch möglich ist? Oder habe ich vielleicht gerade mist geschrieben und es sind tatsächlich aliase, was mich dann doch stark wundern würde :shock:

mfg
noise, der gerade ein wenig geschockt ist...
BlackJack

Beitragvon BlackJack » Freitag 8. Februar 2008, 12:14

Es sind keine Aliasse sondern `bool` ist eine Unterklasse von `int`. Des weiteren ist ``^`` ist per se kein "bitwise"-Operator genauso wenig wie ``+`` eine Addition von Zahlen ist. Diese Operatoren sind, was immer die beteiligten Objekte dafür implementiert haben. Und das ``^`` hier nicht auf Zahlen operiert und `True`/`False` nicht einfach Aliasse für 1/0 sind, sieht man daran, dass das Ergebnis wieder eine `bool`-Instanz ist.

Da dieser Operator auf `bool` definiert ist, und zwar anders als auf der Basisklasse `int`, scheint dessen Verwendung durchaus vorgesehen. Und wieso entbehrt ein Exclusiv-Oder auf Wahrheitswerten jedweder Logik? Das ist eine ganz normale und übliche Operation in Boole'scher Logik.
Yoschi93
User
Beiträge: 17
Registriert: Sonntag 20. Januar 2008, 13:19

Beitragvon Yoschi93 » Samstag 15. März 2008, 00:30

BlackJack hat geschrieben:

Code: Alles auswählen

In [378]: not True
Out[378]: False

In [379]: not False
Out[379]: True

Da kann ich statt not True gleich False verwenden.

Mir gehts darum dass er kontrolliert was fürn Wert zur Zeit beim GConf ist wenn dort True ist stellt er auf False um wenn auf False stellt er auf True um.

Wer ist online?

Mitglieder in diesem Forum: Sirius3