Форум сайта python.su
kvadratмне кажеться все это фигня.
хотя припоминается какой-то проект, где вроде питон компилировался в js на клиенте прям, или что-то вроде этого. название не помню
Офлайн
4kpt
PyQt платный :)
Офлайн
cutwaterтакая как и в Qt.
У PyQt двойное лицензирование, под GPL и коммерческая лицензия.
Офлайн
http://ru.wikipedia.org/wiki/Qt
Начиная с версии 4.5 Qt распространяется по 3 лицензиям (независимо от лицензии, исходный код Qt один и тот же):
Qt Commercial — для разработки ПО с собственнической лицензией, допускающая модификацию самой Qt без раскрытия изменений;
GNU GPL — для разработки ПО с открытыми исходниками, распространяемыми на условиях GNU GPL;
GNU LGPL — для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.
Офлайн
ZZZ
Спасибо. Более полного ответа и ожидать было трудно.
Единственный вопрос. Что значит “без внесения изменений в Qt.”?
Отредактировано 4kpt (Окт. 3, 2013 11:34:38)
Офлайн
4kpt, ничего подобного. Хотя по мелочи проблемы бывают, но можно ли на PySide списывать? Вот, например:
# ... comboBox = QComboBox(parent) treeView = QTreeView(comboBox) treeModel = YourFunnyTreeModel() comboBox.setView(treeView) comboBox.setModel(model) # ...
Офлайн
Да пользуйтесь, я не против :)
Что значит: нужно всего лишь перезагрузить обработчик мыши?
Костыльное программирование в GUI не для меня :)
Отредактировано 4kpt (Окт. 3, 2013 16:24:52)
Офлайн
4kpt, как раз решил эту проблему google не подкинул вменяемых решений, посему, пользуясь случаем, реализация дерева в выпадающем списке:
class TreeBox(QComboBox): skipHidePopupFlag = False def __init__(self, parent, model): super(TreeBox, self).__init__(parent) # внедряем дерево в выпадающий список self.treeView = QTreeView(self) self.setModel(model) self.setView(self.treeView) # ставим фильтр сообщений для рабочей области выпадающего списка self.view().viewport().installEventFilter(self) def eventFilter(self, object, event): # если событие мыши и произошло оно в рабоей области: if event.type() == QEvent.MouseButtonPress and object == self.view().viewport(): # получаем индекс модели по точеке index = self.view().indexAt(event.pos()) # получаем область отрисовки по индексу модели rect = self.view().visualRect(index) # горизонтальная инверсия прямоугольника (может это и криво), # все, что слева, включая "плюсик" разворачивания rect.setRight(rect.left()) rect.setLeft(0) # если клик слева значения - ставим флаг блокировки скрытия if rect.contains(event.pos()): self.skipHidePopupFlag = True return False def hidePopup(self): if self.skipHidePopupFlag: self.skipHidePopupFlag = False else: super(TreeBox, self).hidePopup()
Офлайн
4kpt, это значит, что перед компиляцией Qt, нельзя залезть в исходники и что-нить там нахимичить. Ну я так думаю…
P.S. Хоть плюсик бы кто-нить поставил?.. :-P
Офлайн
Если QT - это “просто” (по сравнению с другими вариантами ) то мне даже и сказать нечего
Офлайн