Skip to content

Commit 7acb5bd

Browse files
committed
New PyGTK example.
1 parent d884476 commit 7acb5bd

File tree

6 files changed

+101
-514
lines changed

6 files changed

+101
-514
lines changed

tests/pygtk/cef.glade

Lines changed: 0 additions & 146 deletions
This file was deleted.

tests/pygtk/pygtk.bat

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@echo off
2+
setlocal
3+
set PATH=d:\gtk\bin;d:\python27;%PATH%
4+
CALL d:\python27\python.exe %~dp0pygtk_.py
5+
pause

tests/pygtk/pygtk.jpg

-33.2 KB
Binary file not shown.

tests/pygtk/pygtk.png

28.5 KB
Loading

tests/pygtk/pygtk_.py

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import cefpython
2+
import pygtk
3+
pygtk.require('2.0')
4+
import gtk
5+
import sys
6+
import gobject
7+
8+
class PyGTKExample:
9+
10+
mainWindow = None
11+
container = None
12+
browser = None
13+
exiting = None
14+
15+
def __init__(self):
16+
17+
gobject.timeout_add(10, self.OnTimer)
18+
19+
self.mainWindow = gtk.Window(gtk.WINDOW_TOPLEVEL)
20+
self.mainWindow.connect('destroy', self.OnExit)
21+
self.mainWindow.set_size_request(width=600, height=400)
22+
self.mainWindow.set_title('PyGTK CEF example')
23+
self.mainWindow.realize()
24+
25+
self.container = gtk.DrawingArea()
26+
self.container.set_property('can-focus', True)
27+
self.container.connect('focus-in-event', self.OnFocus)
28+
self.container.connect('size-allocate', self.OnSize)
29+
self.container.show()
30+
31+
table = gtk.Table(2, 1, homogeneous=False)
32+
self.mainWindow.add(table)
33+
table.attach(self.CreateMenu(), 0, 1, 0, 1, yoptions=gtk.SHRINK)
34+
table.attach(self.container, 0, 1, 1, 2)
35+
table.show()
36+
37+
windowID = self.container.get_window().handle
38+
self.browser = cefpython.CreateBrowser(windowID, browserSettings={}, navigateURL='cefsimple.html')
39+
40+
self.mainWindow.show()
41+
42+
def CreateMenu(self):
43+
44+
file = gtk.MenuItem('File')
45+
file.show()
46+
filemenu = gtk.Menu()
47+
item = gtk.MenuItem('Open')
48+
filemenu.append(item)
49+
item.show()
50+
item = gtk.MenuItem('Exit')
51+
filemenu.append(item)
52+
item.show()
53+
file.set_submenu(filemenu)
54+
55+
about = gtk.MenuItem('About')
56+
about.show()
57+
58+
menubar = gtk.MenuBar()
59+
menubar.append(file)
60+
menubar.append(about)
61+
menubar.show()
62+
63+
return menubar
64+
65+
def OnTimer(self):
66+
67+
if self.exiting:
68+
return False
69+
cefpython.SingleMessageLoop()
70+
return True
71+
72+
def OnFocus(self, widget, data):
73+
74+
cefpython.wm_SetFocus(self.container.get_window().handle, 0, 0, 0)
75+
76+
def OnSize(self, widget, sizeAlloc):
77+
78+
cefpython.wm_Size(self.container.get_window().handle, 0, 0, 0)
79+
80+
def OnExit(self, widget, data=None):
81+
82+
self.exiting = True
83+
cefpython.Shutdown()
84+
gtk.main_quit()
85+
86+
if __name__ == '__main__':
87+
88+
version = '.'.join(map(str, list(gtk.gtk_version)))
89+
print('GTK version: %s' % version)
90+
91+
cefpython.Initialize()
92+
sys.excepthook = cefpython.ExceptHook
93+
94+
gobject.threads_init() # timer for messageloop
95+
PyGTKExample()
96+
gtk.main()

0 commit comments

Comments
 (0)