

Review: An absolute must-have for PyQt users - I am an experienced amateur with Python. This is the book I used to learn the basics of GUI programming using PyQt. I had some previous experience with using wxPython, but I needed to learn PyQt specifically for a project. I chose this book based on some reviews and it was a home run. It contains very clear explanations of the basics of PyQt as well as some great examples of advanced techniques. The book is almost worth the price just for the source code to his tree model/view example. One of my favorite things about this book are the exercises at the end of each chapter. There are only a few, but each one involves extending that chapter's examples in some manner, to better illustrate the concepts. I found these to be a tremendous learning opportunity. You can download the answers to the examples from the author's website, and it was very informative to compare my code to that of a professional programmer. On a similar note, I expected to skip over the first three chapters introducing you to Python programming. As I skimmed through them, I realized that those chapters were, in fact, very illuminating. I think they are one of the best general introductions to Python out there. In short, if you are anything other than an expert PyQt programmer, you need this book. I had it open continually at my workstation for months, and I still keep it close and refer to it often. Review: Worth having when time is money - For any open source programming tool, there are always those who are quick to point out that free online documentation is of excellent quality and that a commercially published book adds questionable value. Indeed, the open process by which open source tools are made, which reveals the why's & wherefore's of the internal workings to anyone who looks, leads directly to the production of excellent online documentation; this is one of the great strengths of open source software. But everyone's needs are different. A college student or free software volunteer often has looser deadlines, less budget, and a more perfectionist attitude than, for example, a non-expert programmer, working in industry, trying to expeditiously solve a specific problem. A book of this genre is intended mainly for the latter audience, whereas the former may be disappointed at spending $50 when a web browser could have done the job. Cash-strapped college students, I know your pain; I used to be one. This book is not a particularly cost-effective study aid. If you live and breathe GUI progamming and can type out GTK2 and wxwidget classes by heart, then this book is probably a waste of time for you. Having said that, I review this book with a view toward its value to its intended audience: Does buying this book and using it get the job done $50 cheaper, including the value of your own professional time, compared to the best available alternative? My experience is yes. I am an electrical engineer, but not a programming expert. I have, at various times in my career, flipped bits in assembly language, suffered the rigors of Fortran, and slapped together contraptions in Matlab, VEE, Labview, etc. I have also had the misfortune of programming production test automation in Visual Basic, because that is what commercial instruments natively support. It is the shortcomings of VB that bring me to PyQT. I need to write test code that is portable, maintainable, and reliable. To give just one example, I don't want to fly across the Pacific Ocean to program workarounds for bugs in VB, because machines in the Chinese factory run Win98, and my development system in the US runs Win2k, and VB doesn't behave the same. But this is a book review, not a place to extol the virtues of PyQT nor criticize VB. I have programmed in Python before, though for me Python has always been a language for one-off numerical or string processing tasks, where a spreadsheet is too limited and my bash script-fu is short of the task. I found the first three chapters on Python a helpful review, though it is not a complete instruction in Python. Compete beginners to Python will probably want to buy a separate book or work through the python.org tutorials. The author glosses over things that could trip up beginners; tellingly, he uses the term 'pythonic' without introduction. He is, however, careful to point out pitfalls that can waylay real-world production code, or would be of interest to experienced Perl/Ruby/VB programmers, like how Python handles the distinctions regarding {im}mutable types and {deep|shallow} copying. I have never programmed QT before, and this book is indeed a complete introduction to QT. You don't need to know anything about QT nor how to program in C++ (QT's native language). Being able to read C++ syntax helps, though, because this book is not a QT reference, so you will probably have to look things up in the online QT references, which are written in C++. It is something of a truism that the best way to learn a language is to read & understand someone else's well-written code, and then use that to write a program of your own. That is the approach used here, and the printed book format permits interleaving fragments of code with explanatory material in a way that doesn't work well on a computer screen. As such the text complements rather than duplicates the online documentation. Regarding the book as a physical object, the quality is good but some extra features would have been nice. No CD is included, which I consider an oversight for a book at this price. Even the shortest examples lack source code listings, except as snippets woven into the text. You have to download the example code from a URL buried in the introduction, which is odd considering how important the example code is to this style of instruction. Occasional sidebar topics, icons, and cross-references help to organize the material, though not to the spoon-feeding level of "For {Dummies|Idiots}" books. The index is a bit above average for a book of this type, better than pure machine-generated grep output that sometimes passes for an index these days, but not as good as the best manual indices of decades past. The cover, binding, & paper stock are of decent quality. The book will stay open to just about any page when laid on a table, and the glue looks like it will, well probably, hold the sheaves in for many years. No color is used, nor edge printing to help find the chapters, which would have been helpful for a book this long.
| Best Sellers Rank | #2,846 in Python Programming |
| Customer Reviews | 4.2 out of 5 stars 107 Reviews |
S**Y
An absolute must-have for PyQt users
I am an experienced amateur with Python. This is the book I used to learn the basics of GUI programming using PyQt. I had some previous experience with using wxPython, but I needed to learn PyQt specifically for a project. I chose this book based on some reviews and it was a home run. It contains very clear explanations of the basics of PyQt as well as some great examples of advanced techniques. The book is almost worth the price just for the source code to his tree model/view example. One of my favorite things about this book are the exercises at the end of each chapter. There are only a few, but each one involves extending that chapter's examples in some manner, to better illustrate the concepts. I found these to be a tremendous learning opportunity. You can download the answers to the examples from the author's website, and it was very informative to compare my code to that of a professional programmer. On a similar note, I expected to skip over the first three chapters introducing you to Python programming. As I skimmed through them, I realized that those chapters were, in fact, very illuminating. I think they are one of the best general introductions to Python out there. In short, if you are anything other than an expert PyQt programmer, you need this book. I had it open continually at my workstation for months, and I still keep it close and refer to it often.
T**R
Worth having when time is money
For any open source programming tool, there are always those who are quick to point out that free online documentation is of excellent quality and that a commercially published book adds questionable value. Indeed, the open process by which open source tools are made, which reveals the why's & wherefore's of the internal workings to anyone who looks, leads directly to the production of excellent online documentation; this is one of the great strengths of open source software. But everyone's needs are different. A college student or free software volunteer often has looser deadlines, less budget, and a more perfectionist attitude than, for example, a non-expert programmer, working in industry, trying to expeditiously solve a specific problem. A book of this genre is intended mainly for the latter audience, whereas the former may be disappointed at spending $50 when a web browser could have done the job. Cash-strapped college students, I know your pain; I used to be one. This book is not a particularly cost-effective study aid. If you live and breathe GUI progamming and can type out GTK2 and wxwidget classes by heart, then this book is probably a waste of time for you. Having said that, I review this book with a view toward its value to its intended audience: Does buying this book and using it get the job done $50 cheaper, including the value of your own professional time, compared to the best available alternative? My experience is yes. I am an electrical engineer, but not a programming expert. I have, at various times in my career, flipped bits in assembly language, suffered the rigors of Fortran, and slapped together contraptions in Matlab, VEE, Labview, etc. I have also had the misfortune of programming production test automation in Visual Basic, because that is what commercial instruments natively support. It is the shortcomings of VB that bring me to PyQT. I need to write test code that is portable, maintainable, and reliable. To give just one example, I don't want to fly across the Pacific Ocean to program workarounds for bugs in VB, because machines in the Chinese factory run Win98, and my development system in the US runs Win2k, and VB doesn't behave the same. But this is a book review, not a place to extol the virtues of PyQT nor criticize VB. I have programmed in Python before, though for me Python has always been a language for one-off numerical or string processing tasks, where a spreadsheet is too limited and my bash script-fu is short of the task. I found the first three chapters on Python a helpful review, though it is not a complete instruction in Python. Compete beginners to Python will probably want to buy a separate book or work through the python.org tutorials. The author glosses over things that could trip up beginners; tellingly, he uses the term 'pythonic' without introduction. He is, however, careful to point out pitfalls that can waylay real-world production code, or would be of interest to experienced Perl/Ruby/VB programmers, like how Python handles the distinctions regarding {im}mutable types and {deep|shallow} copying. I have never programmed QT before, and this book is indeed a complete introduction to QT. You don't need to know anything about QT nor how to program in C++ (QT's native language). Being able to read C++ syntax helps, though, because this book is not a QT reference, so you will probably have to look things up in the online QT references, which are written in C++. It is something of a truism that the best way to learn a language is to read & understand someone else's well-written code, and then use that to write a program of your own. That is the approach used here, and the printed book format permits interleaving fragments of code with explanatory material in a way that doesn't work well on a computer screen. As such the text complements rather than duplicates the online documentation. Regarding the book as a physical object, the quality is good but some extra features would have been nice. No CD is included, which I consider an oversight for a book at this price. Even the shortest examples lack source code listings, except as snippets woven into the text. You have to download the example code from a URL buried in the introduction, which is odd considering how important the example code is to this style of instruction. Occasional sidebar topics, icons, and cross-references help to organize the material, though not to the spoon-feeding level of "For {Dummies|Idiots}" books. The index is a bit above average for a book of this type, better than pure machine-generated grep output that sometimes passes for an index these days, but not as good as the best manual indices of decades past. The cover, binding, & paper stock are of decent quality. The book will stay open to just about any page when laid on a table, and the glue looks like it will, well probably, hold the sheaves in for many years. No color is used, nor edge printing to help find the chapters, which would have been helpful for a book this long.
P**O
Really Good Book (even if you are using Python 3)
What I like most about this book is that it weaves the theory of Python programming into the practice of writing efficient code. The author has gone to great lengths to keep the reader out of the forests and swamps of Python language features to focus her/him on writing interesting code. The learn-by-doing approach is a really good angle. I am studying this book with Python 3 (reason: the guys at Riverbank Computing (authors of PyQt) decided to support Python 3, I couldn't wait for wxPython to get here). That said, the hurdle anyone who takes this path must go through is developing GUIs from a Python 3 perspective while referencing Python 2.x(warts and all), given that the book covers only Python 2.x code. That's not as hard as it seems since the author has taken the time to port all of the code examples to Python 3.x. Also, given the availability of excellent Python 3 references (like Python Essential Reference (4th Edition) ) you'll be hopping and skipping pretty quickly. If you are new to Python, don't hurt your brain. First study an introductory book on Python 3(like Programming in Python 3: A Complete Introduction to the Python Language (2nd Edition) ). This should make you mentally stable enough to charge down this path without crashing into trees. Everyone else, get the book as soon as you can and get busy. You won't regret it!
A**S
Americium Dream help
. this is an excellent gui-programming tutorial; and, don't underestimate the importance of the downloadable code samples; because, the style of this book is explaining each chunk of the code; and, it's easy to lose sight of the big picture without having both the book and code in front of you . . if you don't already know Python, pay attention to part I, a great beginner's tutorial (this part is quite instructive without the code samples); only then it will be obvious how the object-oriented parts fit together; so that the explanation of code chunks can fall into place . . the author carefully explains all of the example code, and the examples are strategically chosen to be representative of everything pyqt is capable of doing; but towards the middle of the book, you realize the author definitely intends that you read the pyqt documentation because otherwise knowing how the authors code works isn't going to help you with implementing every design you might have in mind . . this is in contrast to the front of the book, where the tutorial on command-line python may indeed give you a working a knowledge of python without having to merge his work with the library documentation . qubes recommended: . this book is also recommended by an author of Qubes OS, a xen-based, python scripted, high-security openware . . they also recommend another of Summerfield's books Programming in Python 3: A Complete Introduction to the Python Language (2nd Edition)
H**R
for a job I did not get
I am a very experienced programmer, I have been writing software since before your parents were born, and I needed a review of Qt development for a job I was interviewing for. I had used Qt a little at the beginnings of linux's popularity in the late 90's, and had taught myself simple python a couple of years ago, when Oracle bought Sun and completed wrecking Java. This book is very good, my only criticism is too much review of event driven programming, and not enough detail about the magic dust needed to make Qt cross platform. In detailing how to build the usual GUI application one would have on a Mac or PC desktop, the author misses my interest in using Qt on embedded or mobile systems. I recognize most readers would be more interested in the familiar. Perhaps this is the age of the book, it is several years old. [...]
B**D
Good, but...
In general, this book gives a great overview of PyQt and Python 2.x. However, having read of few of these books to learn a few different languages and frameworks, I find this one lacking quite a bit in several areas. For example, you would not be able to recreate the example applications by reading the book alone. Most examples really only made sense to me with the actual source code at hand. If you ask me, a good text book should be self-sufficient and should not require a computer to be usable. Also, It would be great if the code examples were set in some monospaced font in the Kindle edition. As it is right now, code is set the same way normal text is. I'm sure the print version was formatted way better. Why must Kindle books be so ugly? The author should really *really* read up on user interface design. The author claims that "some people" prefer 'save'/'discard'/'cancel' style dialogue boxes to 'yes'/'no'/'cancel' boxes. Both the UI guidelines of Windows and OSX actively forbid the latter. There is even a whole chapter on dialogue boxes. Again, most style guides say that dialogue boxes should be used sparingly, if at all. Good designs do not need them very often. In some places, the author describes how some default formattings are different in Windows, Gnome or OSX and you really should use some generic auto-correct facilities provided by the framework. This is great! But why only mention it for button placement, but not for, say, form layouts? PyQt has facilities for that, too! There are some issues which are up to the users preference. Say, whether you want to hand-code your UI or use Qt Designer. At one point the author says "Other approaches [to interface design using Qt Designer] are possible and they are covered in the online documentation. None of them is quite as convenient as the approach shown here, though". Well, I beg to differ on both cases. One, I don't think that the shown approach is as convenient as loading the UI files directly and Two, I don't feel that the online documentation is complete in any way. It would have been nice if the author had just shown me the different approaches and let me decide for myself. And lastly, the book is a bit outdated (as of early 2011). PyQt 4.8's New-Style Signals and Slots simplify a lot of things. Python 2.7 and Python 3.x make some differences. The book is still very helpful and I can recommend it if you are new to PyQt. Just be aware that it is a bit outdated, a few glances at the source code are necessary and UI design is not its strong suite.
A**R
This is a great book
I am new to programming in General and am in the midst of a career change. I was lucky enough to land a job that is willing to invest the time in me to let me learn. We use a lot of python and I found QT when just "playing" around. It peaked my interest and I decided to order this book. I LOVE it. I found it's first several chapters (on pyhton itself) very well written and informative. We worked through another book at work that was pretty painful at times. Maybe it is the fact that I have been learning more the thought process and programming in general that makes this one easier to follow but I really think it is just the way it is written and laid out. I love the use of tables to lay out the methods and functions the languages and modules contain. I love having a quick visual reference (cheat sheet) handy. Kudos to the Author for a job well done.
A**R
which may be great, but it's no use to me at all
I agree with the several other reviewers who have pointed out that this book is essentially obsolete for anyone who doesn't have some clever means of getting access to QT. I bought it because I wanted to work on a GUI for an academic project and a lot of material on the internet (and YouTube in particular) suggested that PyQT was the way to go. But this information was from a bygone era when QT was freely available to the masses. Since my institution doesn't have a QT license, and there's no practical way for me to shell out that kind of money. This is no reflection on the quality of the book, which may be great, but it's no use to me at all. So to any potential purchaser: make sure you can actually get QT before buying.
Trustpilot
1 month ago
3 days ago