Приветствую, экспериментирую с PyGTK, но получается какая-то ерунда, так и должно быть? Откуда такие зазоры возле скрол-баров и почему статус-бар тоже закрашивается? http://i33.fastpic.ru/big/2014/0209/bb/2e29077b77a132927af76fda1c987ebb.png
вот код:
import gtk
import
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("example")
self.set_size_request(800, 600)
self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(35000, 35000, 35000))
self.set_position(gtk.WIN_POS_
# --- Main menu ---
mb = gtk.MenuBar()
filemenu = gtk.Menu()
filem = gtk.MenuItem("_File")
filem.set_submenu(filemenu)
agr = gtk.AccelGroup()
self.add_accel_group(agr)
newi = gtk.ImageMenuItem(gtk.STOCK_NEW, agr)
key, mod = gtk.accelerator_parse("<Control>N")
newi.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE)
filemenu.append(newi)
openm = gtk.ImageMenuItem(gtk.STOCK_OPEN, agr)
key, mod = gtk.accelerator_parse("<Control>O")
openm.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE)
filemenu.append(openm)
sep = gtk.SeparatorMenuItem()
filemenu.append(sep)
exit = gtk.ImageMenuItem(gtk.STOCK_QUIT, agr)
key, mod = gtk.accelerator_parse("<Control>Q")
exit.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE)
exit.connect("activate", gtk.main_quit)
filemenu.append(exit)
mb.append(filem)
# --- Scrolled window ---
scrolled_window = gtk.ScrolledWindow()
scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS)
# --- Drawing area ---
darea = gtk.DrawingArea()
darea.connect("expose-event", self.expose)
scrolled_window.add_with_viewport(darea)
# --- Status bar
status_bar = gtk.Statusbar()
status_bar.push(0, "example")
vbox = gtk.VBox(False, 0)
vbox.pack_start(mb, False, False, 0)
vbox.pack_start(scrolled_window, True, True, 0)
vbox.pack_start(status_bar, False, False, 0)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def expose(self, widget, event):
cr = widget.window.cairo_create()
cr.set_source_rgb(0.6, 0.6, 0.6)
cr.rectangle(20, 20, 120, 80)
cr.rectangle(180, 20, 80, 80)
cr.fill()
cr.arc(330, 60, 40, 0, 2*math.pi)
cr.fill()
cr.arc(90, 160, 40, math.pi/4, math.pi)
cr.fill()
cr.translate(220, 180)
cr.scale(1, 0.7)
cr.arc(0, 0, 50, 0, 2*math.pi)
cr.fill()
def main():
gtk.main()
return 0
if __name__ == "__main__":
PyApp()
main()