Маленькая деталь в индексном сравнении. Необходимо сделать, лексикографическое выдерживает сравнение, иначе:
a= (1, 2, 1); b= (2, 1, 2);
(a<b) == (b<a) is true, but b!=a
Редактирование: Таким образом, сравнение должно, вероятно, быть:
return lhs.x<rhs.x
? true
: lhs.x==rhs.x
? lhs.y<rhs.y
? true
: lhs.y==rhs.y
? lhs.z<rhs.z
: false
: false
I've written reasonably large apps in both PyGTK and PyQt. On balance, my personal opinion is that PyQt is superior, but not by so much that it's worth worrying about. If you're only worried about supporting Ubuntu, then use PyGTK; it'll give a better look and feel. If you think you may want to port this app to other platforms, then use PyQt; PyQt is far and away the superior crossplatform solution.
По моему опыту, когда я создал приложения PyGTK и PyQT, разница в базовом программировании невелика. PyQT кажется более согласованным в разных вариантах Linux, где GTK постоянно меняется и ломается в старых дистрибутивах.
PyQT имеет QTCreator, который является отличным дизайнером графического интерфейса. PyGTK имеет Glade3, который становится лучше, но не так хорошо. До недавнего времени Glade была плохой шуткой. Если вам нужно рисовать графический интерфейс в редакторе, PyQT, вероятно, лучший выбор. В противном случае я бы выбрал PyGTK для кодирования, потому что онлайн-документация PyGTK превосходна.
Я обнаружил одну странную вещь: PyQT плохо поддерживает обратные вызовы динамических пунктов меню. Возможно, я просто неправильно использовал его, но PyGTK по сравнению с ним немного более гибкий.
Это действительно сложный выбор. Но если вы правильно спроектируете свое приложение, интерфейс не будет иметь значения; вы можете разработать свое приложение с несколькими интерфейсами ...