[Python-de] pygtk Zugriff auf Daten

Ron Opitz ron.opitz at dts.de
Don Mar 10 15:39:23 CET 2005


Hallo,

bin gerade dabei mich ein wenig in pygtk einzuarbeiten und erstelle ein
Frontend für mehrere Shellscripte die dann mit os.system gestartet werden
sollen. Leider funktioniert der Zugriff auf die definierten Felder nicht
bzw. ich weiß nicht wie ich diese ansprechen soll.

Wie kann ich unter def create_index() auf die Variable cb_ext (checkbox)
Zugreifen?
NameError: global name 'cb_ext' is not defined

Und bei Verwendung von pictman.cb_ext geht es auch nicht.

Danke für Eure Hilfe im voraus.

Wer eine Link auf einen guten Quellcode eines pygtk Projektes hat, wäre ich
auch sehr dankbar und könnte mir dort noch ein paar Anregungen holen.

Danke Ron


Anbei ein Beispiel (Auszug):

import pygtk
pygtk.require('2.0')
import gtk
import string
import sys
import os

class pictman:
   
    def create_index(self, widget):
    
     # Externes Medium mit indizieren
     if cb_ext.get_active()==TRUE:
        ext = '1'
     else:
        ext = '0'
    
     os.system(ini["pm_conf_dir_app"] + "/create_index.sh '" + ext + "'")
    
    def __init__(self):
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.connect("delete_event", self.delete)
        window.set_border_width(10)

        table = gtk.Table(1,1,gtk.FALSE)
        window.add(table)

        # Create a new notebook, place the position of the tabs
        notebook = gtk.Notebook()
        notebook.set_tab_pos(gtk.POS_TOP)
        table.attach(notebook, 0,1,0,1)
        notebook.show()
        self.show_tabs = gtk.TRUE
        self.show_border = gtk.TRUE
    
    ## Begin Reiter 2
    
        # Frame fuer Reiter 2
        frame_r2 = gtk.Frame("Suchen")
        frame_r2.set_border_width(10)
        frame_r2.set_size_request(400, 250)
        frame_r2.show()
    
        # Tabelle fuer Frame im Reiter 2
        table_r2 = gtk.Table(10,5)
        frame_r2.add(table_r2)
        table_r2.show()
    
    # Inhalt der Tablle
    

        # Checkbox Externes Medium
        cb_ext = gtk.CheckButton("Externes Medium einbinden")
        cb_ext.set_size_request(100, 25)
        table_r2.attach(cb_ext, 0,4,3,4)
        cb_ext.show ()
    
    # Button
        button = gtk.Button("Index erstellen")
        button.connect("clicked", self.create_index)
        table_r2.attach(button, 4,5,3,4)
        button.show()
    
    # Reiter 2 anzeigen
        label = gtk.Label("Suchen")
        notebook.append_page(frame_r2, label)

    
    # Set what page to start at
        notebook.set_current_page(0)

 
        table.show()
        window.show()


def main():
    gtk.main()
    return 0

if __name__ == "__main__":
    pictman()
    main()