Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Ohh, I definitely recommend <a href="http://www.riverbankcomputing.co.uk/software/pyqt/intro" rel="nofollow">PyQt4</a>. At first, I didn't get all this <code>SIGNAL</code> and <code>EMIT</code> nonsense, but now that I've made a program with it, the <code>QThread</code> module is amazingly useful. </p> <p>As for stability, I have never had a crash, ever. Even while I was debugging half-functional code, QT didn't have any problems. It just threw an error to the console window whenever I clicked a button with an invalid signal slot.</p> <p>GTK, on the other hand, just 'sploded once in a while with no errors whatsoever. Just your extremely descriptive and friendly <code>Segmentation Fault</code>. That was one of the reasons I find PyQt a joy to work with. When you get an error, you actually know what's wrong.</p> <p>I'm pretty sure it's personal preference after that, but one more plus is native-looking GUIs on Mac, Linux, and Windows. GTK+ on Windows (don't get me wrong. I use Ubuntu) just has this X-org feel to it, which disturbs me.</p> <p>Good luck!</p> <hr> <p>Just to make PyQt a bit more attractive, here's an excerpt from my book binding application (it's a bit messy):</p> <pre><code>class Binder(QtCore.QThread): ''' Class for binding the actual book ''' def __init__(self, parent = None): super(Binder, self).__init__(parent) def initialize(self, pages, options, outfile): self.pages = pages self.options = options self.outFile = outfile self.book = organizer.Book() self.enc = Encoder(self.options) self.ocr = ocr.OCR(self.options) self.connect(self.enc, QtCore.SIGNAL('updateProgress(int, int)'), self.updateProgress) def updateProgress(self, percent, item): self.emit(QtCore.SIGNAL('updateProgress(int, QString)'), int(percent), 'Binding the book...') self.emit(QtCore.SIGNAL('updateBackground(int, QColor)'), int(item), QtGui.QColor(170, 255, 170, 120)) if int(percent) == 100: time.sleep(0.5) self.emit(QtCore.SIGNAL('finishedBinding')) def run(self): self.die = False for page in self.pages: self.add_file(page, 'page') if not self.die: self.analyze() if not self.die: self.book.get_dpi() if self.options['ocr'] and not self.die: self.get_ocr() if not self.die: self.enc.initialize(self.book, self.outFile) self.enc.start() </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload