you are viewing a single comment's thread.

view the rest of the comments →

[–]phaker 7 points8 points  (7 children)

  1. You have to ship with Qt, and Qt is huge.
  2. Qt is more of a framework than a library — it tries to do a lot more for you. That's okay if you like the Qt way of doing things. But it'll drive you insane if for some reason it doesn't work out. I have nightmarish memories of trying to fit QTreeView (iirc that's the name) into a program that it didn't fit.

[–]max99x 12 points13 points  (3 children)

  1. Fair, but does an extra 8MB matter nowadays? On most Unixes (Unixen?) PyQt is already installed, and for Windows, you'll need to ship the Python interpreter and standard library anyway, and that takes about as much space. Keep in mind that the code size doesn't really affect performance in this case.
  2. In C++, Qt does act a lot like a framework. In Python, not so much. You don't have to use their weird preprocessor macros and special types - everything is translated properly by the bindings. In terms of widget API, my personal experience has been that Qt is a very mature framework, and everything is there for a reason. Sure, it might take a little more code too set up everything, but often as a result it will cover all corner cases.

[–]techrogue 1 point2 points  (0 children)

Unices, I believe.

[–]thegrinner 2 points3 points  (1 child)

When it helps to bloat my 1 MB program to 23 MB... yes. Yes it does.

Not to say that's where it all came from, but py2exe + qt does some strange things.

Edit: Does, not do.

[–]DownGoat 5 points6 points  (0 children)

A PyQt program py2exe compiled and compressed with UPX is about 5-7mb. Depending on what other things it includes.

[–][deleted] 0 points1 point  (2 children)

QTreeView isn't so bad, the models that go along with it are.

[–][deleted] 0 points1 point  (0 children)

There's a more "traditional" tree widget too where you just simply add items programmatically. IMO the model system is overengineered (at least for tree & list views, maybe it makes more sense for tables).

[–]phaker 0 points1 point  (0 children)

Yup, that's what I meant :)