49 of 50 people found the following review helpful:
5.0 out of 5 stars
Essential reading for wxPython developers, July 4, 2006
This review is from: Wxpython in Action (Paperback)
If, like me, you've been living under a rock (inasmuch as one can in the world of cross-platform GUI toolkits), you might not have heard much about wxPython. And if, like me, you were excited by the idea of quickly developing modern, robust GUI-driven applications that can run, without changes, on Windows, Mac OS X, and various UNIX-like systems, but turned off by the downright spartan and unforgiving online documentation, you can get happy again--with the publication of Noel Rappin and wxPython co-creator Robin Dunn's wxPython in Action, there is finally a cogent, coherent hybrid of tutorial and reference for wxPython that will get you out from under all that clunky Tkinter code and doing cool stuff.
Like other volumes in Manning's In Action series, wxPython presents a comfortable combination of introduction, overview, and example that encourages exploration and experimentation. The text is clear and concise, offering a no-nonsense explanation of the most relevant portions of the wxPython libraries and the best practices for their use, delivered at a measured pace that never manages to overwhelm, and uncannily launches into explanations of your questions just as they arise. Numerous reference tables provide a handy guide to the details (object properties, method signatures, events, etc.) that you'll be coming back to in your own future development. The expanded table of contents, listing each of the "how do I..." subsections of each chapter, is also a nice feature that will help make this a valuable reference. Code examples are functional, clean, and on-topic, just the right size to illustrate the concept at hand, and nearly always accompanied by illustrations of the resulting behavior. All the code is available online, and it's worth your time to either download it and give it a spin, or key it yourself and see how it behaves on your OS of choice. An especially nice feature of the example code in the book is that it's well annotated, either with a brief note or a bulleted number that will be referenced in an in-depth explanation immediately following the code listing; this helps the reader quickly zero in on the essential elements of the example, and it's surprising that such a useful technique is not more frequently encountered in programming books. A few errors seem to have snuck through the editing process, though, so deeply involved readers will want the errata nearby when monkeying with example code. Manning's "Author Online" forums are also a great resource if you get stumped along the way.
The book is divided into three major sections, each six chapters long. The first, "Introduction to wxPython," is primarily a tutorial that walks the reader through the foundations of coding in wxPython-land. Newcomers to GUI programming might find certain portions a bit dense and mildly daunting--specifically chapters 2 and 3--but patience here will be rewarded with a good understanding of critically important concepts, such as wxPython's event handling model, that will be leveraged over and over again throughout the rest of the book. Chapter 4 introduces PyCrust and other tools from Patrick O'Brien's Py library that you can use for interactive debugging or even reuse within your own wxPython applications. Chapter 5 is a real gem, providing an excellent discussion and practical walkthrough of the refactoring process, an exploration of the benefits of the Model-View-Controller pattern and how to do MVC in wxPython, and illustrates how to unit test your wxPython app; these are non-glamourous topics that help aspiring developers grow into good professionals, and this is a perfect place to see these topics. Chapter 6 presents the construction of a simple but fairly polished toy sketch application, a satisfying achievement that nicely rounds out the introductory section.
The second section, "Essential wxPython," begins the more reference-oriented material, covering (unsurprisingly) the essential widgets of the wxPython toolkit: text labels, text entry, buttons, checkboxes, and the like in Chapter 7; frames (what most of us think of when they think of "windows") in Chapter 8; dialogs in Chapter 9; various flavors of menus in Chapter 10; the ins and outs of sizers in Chapter 11; and basic graphics manipulation (putting images on the screen, customizing the cursor, etc.) in Chapter 12. Each subsection builds logically on the one that came before it, and likewise each chapter follows from its predecessor, introducing new widgets just as you're ready for them. The text here is significantly lighter than in the first few chapters, so this reads fairly quickly.
The third section, "Advanced wxPython," covers some more complicated widgets and topics that probably won't be day-to-day concerns but which are important enough that, when you need to know about them, they're covered in the book: list controls (think Windows Explorer or Macintosh Finder) in Chapter 13; grid controls (think spreadsheet applications) in Chapter 14; the tree control (think file system trees, or registry editors) in Chapter 15; HTML widgets (a great idea for a help facility in your applications) in Chapter 16; the wxPython printing framework in Chapter 17. Finally, Chapter 18 rounds things out with a grab-bag of other topics that didn't merit their own chapters but which are good to know about anyway: using the clipboard, managing drag and drop operations, timers, and threading issues.
To be fair, there are a few imperfections here, but they mostly amount to personal nit-picking. While it's probably not essential, there's no discussion of sound or other multimedia functionality; and from a structural standpoint, the book would have benefitted from a brief afterword to launch the reader into further reading or development activity. Finally, and this might be slightly unfair as I'd just finished reading one of O'Reilly's Head First books when I picked up wxPython in Action, this book could probably use a little more personality; when the occasional editorial comment sneaks through, it's a welcome break from the readable but positively arid expanses of text and examples.
That said, there's obviously still a lot here to love. wxPython is clearly the way to build cross-platform GUI apps in Python; even Guido van Rossum, Python's creator and benevolent dictator, advocates it, saying, "wxPython is the best and most mature cross-platform GUI toolkit... the only reason wxPython isn't the standard Python GUI toolkit is that Tkinter was there first." wxPython in Action is clearly the authoritative resource on the subject, a great introduction that will also serve as an excellent reference for years to come. Recommended for wxPython n00bs and gurus alike.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
20 of 20 people found the following review helpful:
5.0 out of 5 stars
Fantastic learning guide and reference manual, September 6, 2006
This review is from: Wxpython in Action (Paperback)
I have dabbled in python some and played with 3 GUI toolkits for it: Tkinter, wxPython, and PyQT, but never had a good comprehensive manual to learn from. Scattered tutorials on the web of varying quality didn't help much.
Because of the 5-Star reviews for this book here on Amazon I purchased it and after having it 1 week I will add my 5-Star rating. This book is fantastic.
The writing is straightforward, the examples are clear, everything is explained concisely but comprehensively. I started at the first chapter and was very pleased that it started immediately with several simple GUI examples called bare.py and spare.py, for example.
Far too many programming books spend 1/3 of the book doing a basic tutorial of the language before you get to anything useful. Not this book. It states you should be somewhat familiar with Python and recommends another book if you need to learn it. So if you are beyond the basics and worried about getting another dumbed-down textbook, you can stop worrying; This book is ALL useful content.
I am immensely pleased with this book. Internet tutorials are useful for many things, so do not imagine I consider them useless for learning. But this book is superior and it is worth every penny.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
26 of 29 people found the following review helpful:
2.0 out of 5 stars
Just barely adequate and not worth the money, May 12, 2007
This review is from: Wxpython in Action (Paperback)
I've probably been spoiled by the excellently written tutorial for Java's Swing. wxPython in Action just barely covers the necessities. It has slightly more content than what's available online, but the structure of it makes it highly unsuitable as a reference.
The book boasts numerous tables that list most commonly used methods or classes for each topic, but the list is not exhaustive. Coupled with the rapidly changing API, the lists are nearly useless. There are also no screenshots with the various widgets all shown for comparison purposes or just to figure out which one you want.
Sections are constructed around questions, such as "How can I use file picker?", or "What color names are predefined?" Which is fine usually, except sometimes, the authors merely cover a very specific question instead of properly introducing a new widget and its functionality.
There are numerous other examples of where the book falls short. Sizers, similar to Swing's LayoutManagers, get a very brief treatment, focusing mostly on the, in my opinion, rather useless GridSizer. Compare this with the Swing Tutorial's in-depth treatment of each individual LayoutManager.
Want to know how to handle mouse events like the scroll wheel? Tough luck, because there's absolutely nothing in the book about it. Instead, the book gives you the basics of event handling and probably expects you to look up the details of scroll wheel handling in the API docs online (which do not have example code).
Overall, this book may be fine for getting you started on a basic application, say, a GUI front-end to a database. Anything more advanced and you had better be ready to get down and dirty with the online API docs.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No