Full description not available
S**D
Pretty much the only game in town
I'm a consultant and I wanted to use wxPython for a commercial application because a) my customer is comfortable with python, as I've delivered a previous product to them with it and b) I prefer developing apps in python over C++ because of the increase in productivity. A number of years ago I had worked on an app in wxWidgets (C++) with a friend, but we ran into problems and eventually abandoned wxWidgets. In the intervening years, of course, I had forgotten all the details about GUI programming (doing mostly console and embedded work).As I tried to start work on a GUI application I've designed for my customer, I was frustrated by either the lack of or the poor quality of web-based documentation for wxPython. I decided to buy this book to help me get up to speed on the basics.The book is definitely worth getting to help you get going doing basic wxPython programming. The demos that come with wxPython are great, but they are not good teaching tools for the basic principles. Realize that this book is only an introduction; there's no way they had enough room for a comprehensive treatise. I gave the book 4 stars only because I reserve 5 stars for books that I consider exceptional.GUI (graphical user interface) toolkits are complex beasts. The learning curve to be able to do the things you want can be steep. Alas, there is no royal road to this knowledge. There are some things that can help, however. This book is certainly a good first step.IMPORTANT: ignore the complaints of people who don't like this book and complain that it didn't help them do anything. I can tell the authors put a lot of work sweating over organization, pedagogy, what to include, examples, etc. You will get the basics of the information you need to pull yourself up by the bootstraps. Just don't expect to be able to turn to a page and have your application written for you -- things simply don't work that way. You will be expected to provide some sweat equity if you want to learn the ropes. The information is there -- I know, because I found it for myself. There will also be things that are missing that you think should be there -- the web can help you find those things.Other things you should know about if you want to learn wxPython:Definitely peruse and study the demos that come with wxPython. First, it will take you quite a bit of time just to go through them all since there are so many of them. You'll also be impressed with the creativity of the many folks who have made these contributions. Keep notes on the widgets that interest you most, as you'll want to go back later to find them and use them.Manually laying out menus, dialogs, etc., via a text editor is tiresome. Get a tool like wxDesigner -- it can save you a lot of time and make it easier to make changes as your customers request them (or you see the need). Plus, all your resources for a project can go into one file. wxDesigner isn't a perfect tool (I'd like to see better documentation and more control over how things are done); however, it will pay for itself quickly if your time is valuable.Check the wxPython wiki and FAQ. You will uncover answers to things you will struggle with.wxPython comes with a tool called PyCrust that can help you discover things -- especially because of the lacking/poor wxPython reference documentation. In the directory I'm working in, I put a file named z.py that contains something like (Amazon's tool screws up the indenting):import wxclass MyApp(wx.App): def OnInit(self): return True#frame = wx.Frame(None)app = MyApp()frame = wx.MDIParentFrame(None)window = wx.MDIChildFrame(frame)panel = wx.Panel(frame)button = wx.Button(frame)textbox = wx.TextCtrl(frame)togglebutton = wx.ToggleButton(frame)toolbar = frame.CreateToolBar()colorpicker = wx.ColourPickerCtrl(frame)dialog = wx.Dialog(frame)canvas = wx.Window(frame)dc = wx.BufferedDC(wx.ClientDC(canvas))brush = wx.Brush("black")font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL)I then start PyCrust and immediately type 'from z import *'. Now, if you look on the Namespace tab, you'll see a local variable tree. Click on the + and you'll expand the tree. Expand the variable of interest to see the attributes and methods for that type. Click on a symbol name and in the frame to the right, you'll see useful information about that thing, such as the docstring. Example: if you used the above z.py file, click on frame, then click on BackgroundColour. You'll see some details on this method. This will be your Obi Wan Kenobi when the documentation has let you down. A minor nit is that you'll often see C++ documentation rather than python, but it's pretty easy to figure things out.Even with these resources, expect to spend a lot of time puzzling over things, cursing the lack of good documentation. But you'll eventually find what you need. In spite of the poor documentation, I'm extremely grateful for the powerful tool that is available, put together by lots of dedicated and hard-working volunteers.In a couple of weeks, I've gotten most of a program I've envisioned for my customer working. It's going to be a very powerful tool for manipulating waveforms (partly because it uses numpy). I suspect they're going to be pretty surprised by the rich functionality in the prototype they see next week.
P**K
Useless for learning wxPython
I bought this book because I thought that reading it would be a good way to learn wxPython. Big mistake! I'm used to reading difficult books but I've found it impossible to learn wxPython from this book. The main problems are these:1. It is badly organized. Part I, called "Introduction to wxPython," deals with high-level abstractions and advanced topics. For example, Chapter 6, called "Working with the basic building blocks," is mainly concerned with constructing a drawing program, and doesn't discuss the most basic widgets in wxPython. Only in Part 2, starting on page 183, does the book "explore the essential widgets that make up the core of the wxPython toolkit." Who wants to wade through 182 pages before learning how to do basic things with wxPython?2. The authors' explanations tend to be vague and incomplete, often omitting very basic information. For example, if I want a user to enter text into the program, then I'll want the program to get that text. Section 7.1.2 of this book, titled "How can I get the user to enter text?" doesn't show how to get the text that the user entered. In fact, the method for getting the text is GetValue() but in this book that is listed in the next section, titled "How do I change the text without user input?" (another example of bad organization). And I didn't find any explanation or example of how to use this very basic method. Another example: Section 7.1.2 says that the style wx.TE_PROCESS_ENTER triggers "a text enter event" when the user presses the enter key but doesn't give the name of this event or say where to find it; in fact it is in section 7.1.8 but you have to hunt to find it.3. The index is weak. For example, suppose you want to find where wx.TextCtrl is discussed. If you look up "TextCtrl" in the index you won't find it; it is under "wx.TextCtrl." OK, but then the index refers you to pages "189-190, 192, 195, 198" whereas in fact all of pages 189-199 are concerned with wx.TextCtrl. Also, there are no subheadings in the index, so you can't tell from the index where to find specific information about a control.I made much better progress when I abandoned this book and worked through the online tutorials. But those are very incomplete and I like working with books, so I've now ordered Cody Precord's bookΒ wxPython 2.8 Application Development Cookbook ; I think I'll like that better.
D**T
An introduction, not a reference
There is only one book on wxPython. If you have any serious interest, there are not a lot of choices. You have to get this book (Rappin and Dunn). The same is true of the wxWidgets by Smart, et. al.This book contains lots of great samples of what you can do with wxPython. Great. If your problem looks like the sample, you can use the sample code.If you want to go beyond the sample code, you are handicapped in two ways:1) When flags, events, methods, etc. are discussed, the discussion introduces only the most often used. The tables which discuss the resources available to you start off incomplete.2) The index is not strong. I count 544 pages covered by 1200 index entry lines. By contrast, the wxWidgets book is 662 pages, covered by 3240 index entry lines. When I need to look something up, I often find that neither book has an index entry for what I am looking for.In contrast, Python Essential Reference by Beazley invariably has an entry for what I want to know. I hardly ever turn to the electronic documentation for Python itself as Beazley answers my Python questions in a single reference.With wxPython and wxWidgets, I often need to turn to the electronic documentation because these two books need supplementation to serve as references.
J**W
Good book on the topic
Generally this is a good book for the medium-skilled developer who has used UI component libraries before. It has a steady introduction, and once you've done the introduction you can jump easily to other parts of the book to learn how to use the other components. Geared almost exclusively to the widget-side of the WxWindows platform, I found this a little limiting for breaking out into other aspects of UI programming, such as for games and in particular for writing custom components, or custom variations of existing components. Though, I guess if you're on topics like that, you need to join the wxpython mail group.Personally, though it didn't recommend it, I did start working through this book with only partial python knowledge - having skimmed through Hetland's Beginning Python (which I don't recommend), I didn't find it that hard to work through this book, tending just to have to decode spurious error messages (as is Python's way). I'm from a Java/PHP background.
A**D
A model textbook for GUI development
I've read many textbooks on GUI frameworks over the years and most have been very dull or very complicated (and often both!). This book manages to be both readable and clearly informative. I've been playing with wxPython for several years but never quite "got it" until I read this book. Finally the pieces all fit together and the rationale made sense. There are some inconsistencies in the toolkit but the book is honest about those and simply warns you that they exist and how to work round them. The early part is a fast paced tutorial and the second two thirds form a fairly comprehensive reference. Particularly noteworthy are the chapters on layout managers and graphics programming. There is also good coverage of printing, something that is notoriously tricky in cross-platform toolkits where the underlying mechanisms can vary widely. Highly recommended and if you intend to use wxPython seriously then you need this book.
A**R
Ideal for those with some OOP and python knowledge
I am working through this books examples. So far Ihave a working basic interface with a main frame and menu items.I am finding it very well written and easy to understand, and am enjoying learning with it.The Author writes for a multi platform audience very well.
D**.
Very good book. Well written and structured
Very good book. Well written and structured. It has a nice thread to follow so you don't just jump into uncharted territory with each chapter and still covers a lot. Plus wxPython is worth knowing. In my opinion this is very good for GUI-beginners.
K**R
User Interface using wxPython
This book is the best UI guide for python. I like the "wx" module because it is possible to design a spreadsheet with this module.
Trustpilot
3 weeks ago
2 days ago