I recently tried a hand at wxGlade and was happy to see it designs a
GUI for you in minutes. I am a newbie Python coder. I am not completely
aware of GUI programming.
I can easily make menubars etc but I am not too sure sure how to get
more windows poppping to get more information. I mean when you click
something, a new windows would open and ask for input like that. Since
I am using wxGlade and wxPython....can you suggest me a quick tutorial
for GUI programming.
Every help is appreciate,
Thanks 7 8951 di********@gmail.com wrote: I recently tried a hand at wxGlade and was happy to see it designs a GUI for you in minutes. I am a newbie Python coder. I am not completely aware of GUI programming.
I can easily make menubars etc but I am not too sure sure how to get more windows poppping to get more information. I mean when you click something, a new windows would open and ask for input like that. Since I am using wxGlade and wxPython....can you suggest me a quick tutorial for GUI programming.
Every help is appreciate,
Without having time to go into a full, the way to proceed with Glade
(unless I am mistaken) is to design each window independently of the
others, and to use a button press in one window to create an instance of
another type of window.
Good luck!
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Love me, love my blog http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden
I am pasting my code. I created a small little GUI without any
functionality as of yet. I wanted to ask few questions on that. -
#!/usr/bin/env python
-
# -*- coding: UTF-8 -*-
-
# generated by wxGlade 0.4cvs on Thu Jun 15 10:51:12 2006
-
-
import wx
-
-
class MyFrame(wx.Frame):
-
def __init__(self, *args, **kwds):
-
# begin wxGlade: MyFrame.__init__
-
kwds["style"] = wx.DEFAULT_FRAME_STYLE
-
wx.Frame.__init__(self, *args, **kwds)
-
self.panel_1 = wx.Panel(self, -1)
-
-
# Menu Bar
-
self.frame_1_menubar = wx.MenuBar()
-
self.SetMenuBar(self.frame_1_menubar)
-
self.File = wx.Menu()
-
self.CreateNewConfigFile = wx.MenuItem(self.File, wx.NewId(),
-
_("Create New Config File"), "", wx.ITEM_NORMAL)
-
self.File.AppendItem(self.CreateNewConfigFile)
-
self.OpenConfigFile = wx.MenuItem(self.File, wx.NewId(),
-
_("Open Config File"), "", wx.ITEM_NORMAL)
-
self.File.AppendItem(self.OpenConfigFile)
-
self.EditConfigFile = wx.MenuItem(self.File, wx.NewId(),
-
_("Edit Config File"), "", wx.ITEM_NORMAL)
-
self.File.AppendItem(self.EditConfigFile)
-
self.Close = wx.MenuItem(self.File, wx.NewId(), _("Close"), "",
-
wx.ITEM_NORMAL)
-
self.File.AppendItem(self.Close)
-
self.Exit = wx.MenuItem(self.File, wx.NewId(), _("Exit"), "",
-
wx.ITEM_NORMAL)
-
self.File.AppendItem(self.Exit)
-
self.frame_1_menubar.Append(self.File, _("File"))
-
self.Action = wx.Menu()
-
self.AddComputer = wx.MenuItem(self.Action, wx.NewId(), _("Add
-
Computer"), "", wx.ITEM_NORMAL)
-
self.Action.AppendItem(self.AddComputer)
-
self.Shutdown = wx.MenuItem(self.Action, wx.NewId(),
-
_("Shutdown..."), "", wx.ITEM_NORMAL)
-
self.Action.AppendItem(self.Shutdown)
-
self.ShutdownAll = wx.MenuItem(self.Action, wx.NewId(),
-
_("Shutdown All"), "", wx.ITEM_NORMAL)
-
self.Action.AppendItem(self.ShutdownAll)
-
self.frame_1_menubar.Append(self.Action, _("Action"))
-
self.Help = wx.Menu()
-
self.Tutorial = wx.MenuItem(self.Help, wx.NewId(),
-
_("Tutorial"), "", wx.ITEM_NORMAL)
-
self.Help.AppendItem(self.Tutorial)
-
self.AboutUs = wx.MenuItem(self.Help, wx.NewId(), _("About
-
us"), "", wx.ITEM_NORMAL)
-
self.Help.AppendItem(self.AboutUs)
-
self.frame_1_menubar.Append(self.Help, _("Help"))
-
# Menu Bar end
-
self.frame_1_statusbar = self.CreateStatusBar(1, 0)
-
-
self.__set_properties()
-
self.__do_layout()
-
# end wxGlade
-
-
def __set_properties(self):
-
# begin wxGlade: MyFrame.__set_properties
-
self.SetTitle(_("Test"))
-
self.SetSize((600, 450))
-
self.frame_1_statusbar.SetStatusWidths([-1])
-
# statusbar fields
-
frame_1_statusbar_fields = [_("Test Application")]
-
for i in range(len(frame_1_statusbar_fields)):
-
-
self.frame_1_statusbar.SetStatusText(frame_1_statusbar_fields[i], i)
-
# end wxGlade
-
-
def __do_layout(self):
-
# begin wxGlade: MyFrame.__do_layout
-
sizer_1 = wx.BoxSizer(wx.VERTICAL)
-
sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
-
self.SetAutoLayout(True)
-
self.SetSizer(sizer_1)
-
self.Layout()
-
# end wxGlade
-
-
# end of class MyFrame
-
-
-
class MyApp(wx.App):
-
def OnInit(self):
-
wx.InitAllImageHandlers()
-
frame_1 = MyFrame(None, -1, "")
-
self.SetTopWindow(frame_1)
-
frame_1.Show()
-
return 1
-
-
# end of class MyApp
-
-
if __name__ == "__main__":
-
import gettext
-
gettext.install("app") # replace with the appropriate catalog name
-
-
app = MyApp(0)
-
app.MainLoop()
-
If I click on any of the items of the File Menu, say I click on "Open
config File", I want a new windows to come up.
My questions is when I create a new Frame/Windows in wxGlade, will it
be wxFrame or wxMDI Frame......which one should I choose and why ?
I am not completely aware of all the small tools that wxGlade gives and
how to place them.
Any kind of help is greatly appreciated.
Thanks Without having time to go into a full, the way to proceed with Glade (unless I am mistaken) is to design each window independently of the others, and to use a button press in one window to create an instance of another type of window. di********@gmail.com wrote: I am pasting my code. I created a small little GUI without any functionality as of yet. I wanted to ask few questions on that.
[lots of code ...] If I click on any of the items of the File Menu, say I click on "Open config File", I want a new windows to come up.
My questions is when I create a new Frame/Windows in wxGlade, will it be wxFrame or wxMDI Frame......which one should I choose and why ?
I am not completely aware of all the small tools that wxGlade gives and how to place them.
Any kind of help is greatly appreciated.
As I already said I'm a bit to busy to help with specifics right now.
Two places you might go for help:
1: http://www.holdenweb.com/PyConTX2006/wxPythonIntro.pdf
The introductory tutorial I gave at PyCon TX 2006
2: Email to wx*****************@lists.wxwidgets.org
There's a fairly friendly community who will take your code as
evidence you are trying to help yourself and explain the basics
as necessary.
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Love me, love my blog http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden
I am a newbie. I was looking for some code where I could a list of
different items from a file and display it in a list box. Then give a
user the capability to select some.
Basically, reading and writing to a file and displaying them in
different widgets...thats something I am looking for. If anybody can
point me to some good example tutorials...I will be greatly helped.
Thanks,
Every help is appreciated di********@gmail.com wrote: I am a newbie. I was looking for some code where I could a list of different items from a file and display it in a list box. Then give a user the capability to select some.
Basically, reading and writing to a file and displaying them in different widgets...thats something I am looking for. If anybody can point me to some good example tutorials...I will be greatly helped.
Thanks,
Every help is appreciated
Have you tried looking at the code in the wxPython demo? In the ListBox
control demo, it populates a ListBox with items from a list, but you
could easily translate that into reading from a file, I think. Here's
the full code in case you don't have the demo: import wx
#---------------------------------------------------------------------------
# This listbox subclass lets you type the starting letters of what you want to # select, and scrolls the list to the match if it is found. class FindPrefixListBox(wx.ListBox): def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, choices=[], style=0, validator=wx.DefaultValidator): wx.ListBox.__init__(self, parent, id, pos, size, choices, style, validator) self.typedText = '' self.log = parent.log self.Bind(wx.EVT_KEY_DOWN, self.OnKey)
def FindPrefix(self, prefix): self.log.WriteText('Looking for prefix: %s\n' % prefix)
if prefix: prefix = prefix.lower() length = len(prefix)
# Changed in 2.5 because ListBox.Number() is no longer supported. # ListBox.GetCount() is now the appropriate way to go. for x in range(self.GetCount()): text = self.GetString(x) text = text.lower()
if text[:length] == prefix: self.log.WriteText('Prefix %s is found.\n' % prefix) return x
self.log.WriteText('Prefix %s is not found.\n' % prefix) return -1
def OnKey(self, evt): key = evt.GetKeyCode()
if key >= 32 and key <= 127: self.typedText = self.typedText + chr(key) item = self.FindPrefix(self.typedText)
if item != -1: self.SetSelection(item)
elif key == wx.WXK_BACK: # backspace removes one character and backs up self.typedText = self.typedText[:-1]
if not self.typedText: self.SetSelection(0) else: item = self.FindPrefix(self.typedText)
if item != -1: self.SetSelection(item) else: self.typedText = '' evt.Skip()
def OnKeyDown(self, evt): pass
#---------------------------------------------------------------------------
class TestListBox(wx.Panel): def __init__(self, parent, log): self.log = log wx.Panel.__init__(self, parent, -1)
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen']
wx.StaticText(self, -1, "This example uses the wx.ListBox control.", (45, 10)) wx.StaticText(self, -1, "Select one:", (15, 50)) self.lb1 = wx.ListBox(self, 60, (100, 50), (90, 120), sampleList, wx.LB_SINGLE) self.Bind(wx.EVT_LISTBOX, self.EvtListBox, self.lb1) self.Bind(wx.EVT_LISTBOX_DCLICK, self.EvtListBoxDClick, self.lb1) self.lb1.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) self.lb1.SetSelection(3) self.lb1.Append("with data", "This one has data"); self.lb1.SetClientData(2, "This one has data");
wx.StaticText(self, -1, "Select many:", (220, 50)) self.lb2 = wx.ListBox(self, 70, (320, 50), (90, 120), sampleList, wx.LB_EXTENDED) self.Bind(wx.EVT_LISTBOX, self.EvtMultiListBox, self.lb2) self.lb2.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) self.lb2.SetSelection(0)
sampleList = sampleList + ['test a', 'test aa', 'test aab', 'test ab', 'test abc', 'test abcc', 'test abcd' ] sampleList.sort() wx.StaticText(self, -1, "Find Prefix:", (15, 250)) fp = FindPrefixListBox(self, -1, (100, 250), (90, 120), sampleList, wx.LB_SINGLE) fp.SetSelection(0)
def EvtListBox(self, event): self.log.WriteText('EvtListBox: %s, %s, %s, %s\n' % (event.GetString(), event.IsSelection(), event.GetSelection(), event.GetClientData()))
lb = event.GetEventObject() data = lb.GetClientData(lb.GetSelection())
if data is not None: self.log.WriteText('\tdata: %s\n' % data)
def EvtListBoxDClick(self, event): self.log.WriteText('EvtListBoxDClick: %s\n' % self.lb1.GetSelection()) self.lb1.Delete(self.lb1.GetSelection())
def EvtMultiListBox(self, event): self.log.WriteText('EvtMultiListBox: %s\n' % str(self.lb2.GetSelections()))
def EvtRightButton(self, event): self.log.WriteText('EvtRightButton: %s\n' % event.GetPosition())
if event.GetEventObject().GetId() == 70: selections = list(self.lb2.GetSelections()) selections.reverse()
for index in selections: self.lb2.Delete(index)
#---------------------------------------------------------------------------
def runTest(frame, nb, log): win = TestListBox(nb, log) return win
#---------------------------------------------------------------------------
overview = """<html><body> A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections). </body></html> """
if __name__ == '__main__': import sys,os import run run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
Ther is a short online tutorial on using wxGlade here <a
href="http://www.serpia.org/wxgladeJohn">wxGlade Tutorial</a>
Did you paste any code ?
Also the link for the next message is not working .....
John Salerno wrote: di********@gmail.com wrote: I am a newbie. I was looking for some code where I could a list of different items from a file and display it in a list box. Then give a user the capability to select some.
Basically, reading and writing to a file and displaying them in different widgets...thats something I am looking for. If anybody can point me to some good example tutorials...I will be greatly helped.
Thanks,
Every help is appreciated
Have you tried looking at the code in the wxPython demo? In the ListBox control demo, it populates a ListBox with items from a list, but you could easily translate that into reading from a file, I think. Here's the full code in case you don't have the demo:
import wx
#---------------------------------------------------------------------------
# This listbox subclass lets you type the starting letters of what you want to # select, and scrolls the list to the match if it is found. class FindPrefixListBox(wx.ListBox): def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, choices=[], style=0, validator=wx.DefaultValidator): wx.ListBox.__init__(self, parent, id, pos, size, choices, style, validator) self.typedText = '' self.log = parent.log self.Bind(wx.EVT_KEY_DOWN, self.OnKey)
def FindPrefix(self, prefix): self.log.WriteText('Looking for prefix: %s\n' % prefix)
if prefix: prefix = prefix.lower() length = len(prefix)
# Changed in 2.5 because ListBox.Number() is no longer supported. # ListBox.GetCount() is now the appropriate way to go. for x in range(self.GetCount()): text = self.GetString(x) text = text.lower()
if text[:length] == prefix: self.log.WriteText('Prefix %s is found.\n' % prefix) return x
self.log.WriteText('Prefix %s is not found.\n' % prefix) return -1
def OnKey(self, evt): key = evt.GetKeyCode()
if key >= 32 and key <= 127: self.typedText = self.typedText + chr(key) item = self.FindPrefix(self.typedText)
if item != -1: self.SetSelection(item)
elif key == wx.WXK_BACK: # backspace removes one character and backs up self.typedText = self.typedText[:-1]
if not self.typedText: self.SetSelection(0) else: item = self.FindPrefix(self.typedText)
if item != -1: self.SetSelection(item) else: self.typedText = '' evt.Skip()
def OnKeyDown(self, evt): pass
#---------------------------------------------------------------------------
class TestListBox(wx.Panel): def __init__(self, parent, log): self.log = log wx.Panel.__init__(self, parent, -1)
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen']
wx.StaticText(self, -1, "This example uses the wx.ListBox control.", (45, 10)) wx.StaticText(self, -1, "Select one:", (15, 50)) self.lb1 = wx.ListBox(self, 60, (100, 50), (90, 120), sampleList, wx.LB_SINGLE) self.Bind(wx.EVT_LISTBOX, self.EvtListBox, self.lb1) self.Bind(wx.EVT_LISTBOX_DCLICK, self.EvtListBoxDClick, self.lb1) self.lb1.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) self.lb1.SetSelection(3) self.lb1.Append("with data", "This one has data"); self.lb1.SetClientData(2, "This one has data");
wx.StaticText(self, -1, "Select many:", (220, 50)) self.lb2 = wx.ListBox(self, 70, (320, 50), (90, 120), sampleList, wx.LB_EXTENDED) self.Bind(wx.EVT_LISTBOX, self.EvtMultiListBox, self.lb2) self.lb2.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) self.lb2.SetSelection(0)
sampleList = sampleList + ['test a', 'test aa', 'test aab', 'test ab', 'test abc', 'test abcc', 'test abcd' ] sampleList.sort() wx.StaticText(self, -1, "Find Prefix:", (15, 250)) fp = FindPrefixListBox(self, -1, (100, 250), (90, 120), sampleList, wx.LB_SINGLE) fp.SetSelection(0)
def EvtListBox(self, event): self.log.WriteText('EvtListBox: %s, %s, %s, %s\n' % (event.GetString(), event.IsSelection(), event.GetSelection(), event.GetClientData()))
lb = event.GetEventObject() data = lb.GetClientData(lb.GetSelection())
if data is not None: self.log.WriteText('\tdata: %s\n' % data)
def EvtListBoxDClick(self, event): self.log.WriteText('EvtListBoxDClick: %s\n' % self.lb1.GetSelection()) self.lb1.Delete(self.lb1.GetSelection())
def EvtMultiListBox(self, event): self.log.WriteText('EvtMultiListBox: %s\n' % str(self.lb2.GetSelections()))
def EvtRightButton(self, event): self.log.WriteText('EvtRightButton: %s\n' % event.GetPosition())
if event.GetEventObject().GetId() == 70: selections = list(self.lb2.GetSelections()) selections.reverse()
for index in selections: self.lb2.Delete(index)
#---------------------------------------------------------------------------
def runTest(frame, nb, log): win = TestListBox(nb, log) return win
#---------------------------------------------------------------------------
overview = """<html><body> A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections). </body></html> """
if __name__ == '__main__': import sys,os import run run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Edilmar |
last post by:
Hi,
First of all, I'm new in Python...
I have worked with manu langs and IDEs, like Delphi, VB, JBuilder, Eclipse,
Borland C++, Perl, etc...
Then, today I think IDEs like Delphi have a...
|
by: Anand K Rayudu |
last post by:
Hi All,
I am new to python & want to build some GUI dialogs.
Can some one please suggest some document reference.
I am hoping that standard python install will have some GUI development...
|
by: Al Dykes |
last post by:
I'm looking for info on programming with glade on python, and maybe
some sample code to hack. I've got python installed, but need a howto
for glade and google doesn't help me.
Any suggestions ?
|
by: BOOGIEMAN |
last post by:
Well that's it, how do I make Windows Application with Python ???
Is there simple way that works 100% ? How can I rework visual design
done in VS 2003 to use it for my python program ?
|
by: Madhusudan Singh |
last post by:
Is there such a thing for python ? Like Qt Designer for instance ?
|
by: alfaeco |
last post by:
Hello
I am looking for a good IDE for Python. Commercial or Open Software.
If possible with visual GUI designer.
For the moment I am considering Komodo.
Any suggestions?
|
by: jiang.haiyun |
last post by:
Now i began to learn GUI programming. There are so many
choices of GUI in the python world, wxPython, pyGTK, PyQT,
Tkinter, .etc, it's difficult for a novice to decide, however.
Can you draw a...
|
by: kromakey |
last post by:
Hi,
Are there any free visual GUI IDE's available for python/jython, which
have a drag and drop form designer similar to Visual Studio or
Delphi ?
Cheers
kromakey
|
by: dominiquevalentine |
last post by:
anyone have any advice as to where to start if i say..wanted to
program the ipods UI? I have one python project under my belt so far,
and i'm going for my second. I want to try to mimic the ipod...
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
| |