The script shows some techniques on controlling the appearance of a GTK3 window.
- Set default window dimensions.
- Set the start-up position for a window.
- Force a window to be maximized or not to be maximized.
- Force a window to take the full screen for display.
- Handle window change event.
- Read the dimensions of a window.
Source Code
#!/usr/bin/python
# Title : GTK3 Basic window
# Date : 16/10/2014
from gi.repository import Gtk
class mainApp():
def __init__(self):
# window
self.win = Gtk.Window()
self.win.connect('destroy', Gtk.main_quit)
self.win.connect('size-allocate', self.onChanged)
self.win.set_title('Window Tricks')
self.win.set_default_size(320,240)
self.win.set_position(Gtk.WindowPosition.CENTER)
mBox = Gtk.VBox(False,2)
# button
self.but = Gtk.Button("Click on me")
self.but.connect("clicked", self.onButClicked)
mBox.pack_start(self.but,True,True,2)
# label
self.lab = Gtk.Label("Message")
mBox.pack_start(self.lab,False,False,2)
self.win.add(mBox)
self.win.show_all()
self.winstate = 0
def showWinDim(self):
mSize = self.win.get_size()
mStr = '[Unmaximized] '
if self.winstate==1:
mStr = '[Maximized] '
elif self.winstate==2:
mStr = '[Fullscreen] '
mD = 'W:'+str(mSize[0])+' H:'+str(mSize[1])
print mD
self.lab.set_text(mStr+mD)
def onButClicked(self,widget):
if self.winstate==0:
self.win.maximize()
self.winstate=1
elif self.winstate==1:
self.win.fullscreen()
self.winstate=2
elif self.winstate==2:
self.win.unfullscreen()
self.win.unmaximize()
self.winstate=0
def onChanged(self,widget,data):
self.showWinDim()
mApp = mainApp()
Gtk.main()

No comments:
Post a Comment