Beginner GTK question

D

dashawn888

I have a simple page that I want to display a menu and toolbar. I
have followed the tutorials and have made some customizations to the
basic code snippet found at

http://www.pygtk.org/pygtk2tutorial/examples/uimanager.py

However my customized code does not display the menu bar. It displays
the toolbar though. The terminal output is

--------------------------------------------------------------------------------
gui.py:79: GtkWarning: Quit: missing action
menubar = uimanager.get_widget('/MenuBar')
--------------------------------------------------------------------------------

Line 79 is this

menubar = uimanager.get_widget('/MenuBar')

Thank you for any help in advanced.

Here is the code

--------------------------------------------------------------------------------

#!/usr/bin/env python
#
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

import pygtk
pygtk.require('2.0')
import gtk

class d3_gui:
ui = '''<ui>
<menubar name="MenuBar">
<menu action="File">
<menuitem name="Quit"/>
</menu>
</menubar>
<toolbar name="ToolBar">
<toolitem action="Quit"/>
</toolbar>
</ui>'''

def __init__(self):
# Setup the window
window = gtk.Window()

# Kill the program if it's closed
window.connect("destroy", lambda w: gtk.main_quit())

# Set title and window size
window.set_title("d3vscan")
window.set_size_request(640, 480)

# setup the widget container
vbox = gtk.VBox()
window.add(vbox)

# Setup uimanager for menu and toolbar
uimanager = gtk.UIManager()

# Add accelerator group
accelgroup = uimanager.get_accel_group()
window.add_accel_group(accelgroup)

# Create an ActionGroup
actiongroup = gtk.ActionGroup('d3_gui')
self.actiongroup = actiongroup

# Create actions
actiongroup.add_actions(
[
('Quit', gtk.STOCK_QUIT, '_Quit me!', None,
'Quit the Program', self.quit_d3),
('File', None, '_File')
]
)

actiongroup.get_action('Quit').set_property('short-label',
'_Quit')

# Attach the action group
uimanager.insert_action_group(actiongroup, 0)

# Add a UI description
uimanager.add_ui_from_string(self.ui)

# make menu
menubar = uimanager.get_widget('/MenuBar')
vbox.pack_start(menubar, False)

# Create toolbar
toolbar = uimanager.get_widget('/ToolBar')
vbox.pack_start(toolbar, False)

window.show_all()
return

def quit_d3(self, b):
print 'Quitting program'
gtk.main_quit()

def main():
gtk.main()
return 0

if __name__ == "__main__":
d3 = d3_gui()
gtk.main()
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,262
Messages
2,571,052
Members
48,769
Latest member
Clifft

Latest Threads

Top