Actually you are calling typeentry
function with another checkbox button which you have defined latter on that's why it is showing error. so first you have to define all the checkbox button then you can call the function.
just see the updated code, it is running fine.
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk, cairo, gio, pango, pangocairo, atk, gobject
class form:
def typeentry(self, widget, data):
print "hi"
if data=="num" and widget.get_active()==True:
self.buttonS.set_visible(True)
self.buttonI.set_visible(True)
self.buttonF.set_visible(True)
self.buttonL.set_visible(True)
if data=="num" and widget.get_active()==False:
self.buttonI.set_visible(False)
self.buttonS.set_visible(False)
self.buttonF.set_visible(False)
self.buttonL.set_visible(False)
def __init__(self):
self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.win.set_position(gtk.WIN_POS_CENTER)
self.win.set_size_request(530, 340)
self.win.set_resizable(False)
evbox = gtk.VBox(False, 0)
frame = gtk.AspectFrame("Select", 1.0, 1.0,3, False)
frame.set_border_width(10)
vbox = gtk.VBox(False, 5)
vbox.set_border_width(5)
frame.add(vbox)
vbox.set_uposition(90,165)
button1 = gtk.CheckButton("Number")
vbox.pack_start(button1, False, False, 2)
button1.set_active(True)
button2 = gtk.CheckButton("String")
vbox.pack_start(button2, False, False, 0)
button2.set_active(True)
self.buttonI = gtk.CheckButton("int")
vbox.pack_start(self.buttonI, False, False, 0)
self.buttonI.set_active(True)
self.buttonI.set_uposition(300,155)
self.buttonF = gtk.CheckButton("float")
vbox.pack_start(self.buttonF, False, False, 0)
self.buttonF.set_active(True)
self.buttonF.set_uposition(300,170)
self.buttonL = gtk.CheckButton("long")
vbox.pack_start(self.buttonL, False, False, 0)
self.buttonL.set_active(True)
self.buttonL.set_uposition(300,185)
self.buttonS = gtk.CheckButton("short")
vbox.pack_start(self.buttonS, False, False, 0)
self.buttonS.set_active(True)
self.buttonS.set_uposition(300,200)
button1.connect("clicked", self.typeentry, "num")
self.buttonI.connect("clicked", self.typeentry, "int")
self.buttonF.connect("clicked", self.typeentry, "float")
self.buttonL.connect("clicked", self.typeentry, "long")
self.buttonS.connect("clicked", self.typeentry, "short")
evbox.add(frame)
self.win.add(evbox)
hbox = gtk.HBox(False, 0)
evbox.pack_start(hbox, False, True, 5)
hbox.set_uposition(0,295)
button = gtk.Button("Previous")
button.connect("clicked", lambda w: gtk.main_quit())
button.set_size_request(90,35)
hbox.pack_start(button, False, False,10)
dbox = gtk.HBox(False, 0)
button = gtk.Button("Next")
button.connect("clicked", lambda w: gtk.main_quit())
button.set_size_request(90,35)
dbox.pack_end(button, True, True, 5)
button = gtk.Button("Exit")
button.set_size_request(90,35)
dbox.pack_end(button, True, True,5)
hbox.pack_end(dbox, False,True, 5)
self.win.show_all()
def main(self):
gtk.main()
if __name__ == "__main__":
first = form()
first.main()