The Menu Bar (PyGTK)
Linux tutorials and code.
1 post
Page 1 of 1
Well I've showed you some basis of Windows, but haven't got into the Menubar yet.
So that's exactly what we're doing today.
So the code below is a basic window, but it has a Label added into it.
Now here's our full code.
So that's exactly what we're doing today.
So the code below is a basic window, but it has a Label added into it.
Code: Select all
To add the menubar you'd add the following codes.
#!/usr/bin/env python
import gtk
class MenuBar(gtk.Window):
def __init__(self):
super(MenuBar, self).__init__()
self.set_position(gtk.WIN_POS_CENTER)
self.set_title("MenuBar")
self.set_size_request(320, 40)
self.set_keep_above(False)
self.connect("destroy", gtk.main_quit, "WM destroy")
vbox = gtk.VBox(False, 0)
self.add(vbox)
label = gtk.Label('An easy, but simple menubar!')
vbox.pack_start(label, False, False, 10)
self.show_all()
MenuBar()
gtk.main()
Code: Select all
Obviously you haft to state your adding a menu, inside the menu, you add a menuitem, as state what they do. In which we already did.mb = gtk.MenuBar()
filemenu = gtk.Menu()
filem = gtk.MenuItem("File")
filem.set_submenu(filemenu)
pinning = gtk.Menu()
pin = gtk.MenuItem("Pinning")
pin.set_submenu(pinning)
filemenu.append(pin)
self.pin = gtk.MenuItem("Pin")
self.pin.connect("activate", self.pin_me)
pinning.append(self.pin)
self.no_pin = gtk.MenuItem("Unpin")
self.no_pin.connect("activate", self.pin_no)
pinning.append(self.no_pin)
self.custsiz = gtk.MenuItem("Dimensions")
self.custsiz.connect("activate", self.dimensions)
filemenu.append(self.custsiz)
self.full = gtk.CheckMenuItem()
self.full.set_label("Check Me")
self.full.set_active(False)
self.full.connect("activate", self.fill_screen)
filemenu.append(self.full)
separator2 = gtk.SeparatorMenuItem()
filemenu.append(separator2)
exit = gtk.MenuItem("Exit")
exit.connect("activate", gtk.main_quit)
filemenu.append(exit)
mb.append(filem)
Now here's our full code.
Code: Select all
Once again easy, and simple cooll;#!/usr/bin/env python
import gtk
class MenuBar(gtk.Window):
def __init__(self):
super(MenuBar, self).__init__()
self.set_position(gtk.WIN_POS_CENTER)
self.set_title("MenuBar")
self.set_size_request(320, 40)
self.set_keep_above(False)
self.connect("destroy", gtk.main_quit, "WM destroy")
mb = gtk.MenuBar()
filemenu = gtk.Menu()
filem = gtk.MenuItem("File")
filem.set_submenu(filemenu)
pinning = gtk.Menu()
pin = gtk.MenuItem("Pinning")
pin.set_submenu(pinning)
filemenu.append(pin)
self.pin = gtk.MenuItem("Pin")
self.pin.connect("activate", self.pin_me)
pinning.append(self.pin)
self.no_pin = gtk.MenuItem("Unpin")
self.no_pin.connect("activate", self.pin_no)
pinning.append(self.no_pin)
self.custsiz = gtk.MenuItem("Dimensions")
self.custsiz.connect("activate", self.dimensions)
filemenu.append(self.custsiz)
self.full = gtk.CheckMenuItem()
self.full.set_label("Check Me")
self.full.set_active(False)
self.full.connect("activate", self.fill_screen)
filemenu.append(self.full)
separator2 = gtk.SeparatorMenuItem()
filemenu.append(separator2)
exit = gtk.MenuItem("Exit")
exit.connect("activate", gtk.main_quit)
filemenu.append(exit)
mb.append(filem)
vbox = gtk.VBox(False, 0)
vbox.pack_start(mb, False, False, 0)
self.add(vbox)
label = gtk.Label('An easy, but simple menubar!')
vbox.pack_start(label, False, False, 10)
self.show_all()
def pin_me(self, w):
self.set_keep_above(True)
def pin_no(self, w):
self.set_keep_above(False)
def dimensions(self, w):
self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.win.set_title("Change Dimensions")
self.win.set_default_size(235, 60)
self.win.set_resizable(False)
self.win.connect("destroy", self.win_hide)
vbox = gtk.VBox(spacing=4)
hbox = gtk.HBox(spacing=4)
self.entry = gtk.Entry()
self.entry2 = gtk.Entry()
self.entry.set_text("width")
self.entry2.set_text("height")
hbox.pack_start(self.entry)
hbox.pack_start(self.entry2)
hbox2 = gtk.HBox(spacing=4)
ok = gtk.Button("OK")
ok.connect("clicked", self.change_size)
hbox2.pack_start(ok)
exit = gtk.Button("Exit")
exit.connect("clicked", self.win_hide)
hbox2.pack_start(exit)
vbox.pack_start(hbox)
vbox.pack_start(hbox2)
self.win.add(vbox)
self.win.show_all()
def change_size(self, w):
width = int(self.entry.get_text())
height = int(self.entry2.get_text())
self.set_size_request(width,height)
def win_hide(self, w):
self.win.hide()
def fill_screen(self, w):
if self.full.get_label() == "Check Me":
self.full.set_label("Uncheck Me")
self.full.set_active(True)
else:
self.full.set_label("Check Me")
self.full.set_active(False)
MenuBar()
gtk.main()
1 post
Page 1 of 1
Copyright Information
Copyright © Codenstuff.com 2020 - 2023