1

Тема: Разработка на Qt (в т.ч. PySide)

Предлагаю здесь обсуждать проблемы связанные с разработкой на Qt и PySide. Я лично на питоне пишу, PySide полностью зависит от Qt, поэтому, думаю, проблемы будут схожи.

Поделиться

2

Re: Разработка на Qt (в т.ч. PySide)

Может, лучше, все-таки, отдельно? smile
Например, вопросы Qt мало зависят от питона.

На то, о чем можно спросить на форуме, не отвечаю через личные сообщения, аську, почту и т.п. для общения есть jabber-конференция: maemo@conference.jabber.org.
QKit - инструментарий для быстрого кроссплатформенного создания приложений на QML.
FAQ по Nokia N9 - читаем, пополняем.
Прежде, чем задать вопрос, воспользуйтесь поиском!

Сайт KiRiK

Поделиться

3

Re: Разработка на Qt (в т.ч. PySide)

Вопросы будут постоянно пересекаться. Апи PySide идентично Qt, решаться почти все будет одинаково.

Поделиться

4

Re: Разработка на Qt (в т.ч. PySide)

Хорошо smile На PySide не писал, поэтому утверждать ничего не берусь.
Думаю, самое первое, про что нужно сказать - SDK. Ее установка и настройка.

На то, о чем можно спросить на форуме, не отвечаю через личные сообщения, аську, почту и т.п. для общения есть jabber-конференция: maemo@conference.jabber.org.
QKit - инструментарий для быстрого кроссплатформенного создания приложений на QML.
FAQ по Nokia N9 - читаем, пополняем.
Прежде, чем задать вопрос, воспользуйтесь поиском!

Сайт KiRiK

Поделиться

5

Re: Разработка на Qt (в т.ч. PySide)

Я тоже на писайде не много писал, но зато достаточно на PyQt, а они тоже имеют идентичные апи.

Поделиться

6

Re: Разработка на Qt (в т.ч. PySide)

Пишу я в основном на C/C++ так что могу лишь еще раз повторить все проблемы которые у меня были с Qt при портировании qstardict.
С Qt 4.5:
Неправильно себя ведет русский ввод с аппаратной клавиатуры. С экранной все работает нормально.
Виджеты не имеют стилей отображения для hildon.
Заголовки в QGroupBox залезают на внутренние элементы.
Нету QPrinter и QSystemTrayIcon. (а вот в GTK иконки в системном трее работают)
Нигде не работает инерционная прокрутка. Прокрутка полосами прокрутки работает.
Кнопки переключения вкладок на форме очень маленькие, по ним без стилуса не попасть. И нет возможности изменить их отображение.
В диалоговых окнах в GTK если окно не помещается на экран то появляется возможность его прокрутки. В Qt полосы прокрутки не появляется а просто все элементы сжимаются в размерах. При большом количестве элементов с таком диалоговым окном невозможно работать.

Qt 4.6:
Исправлены стили отображения виджетов.
Ввод русского текста работает, но не работает переключение раскладки.
Прокрутка в элементах теперь вообще никак не работает (если поле редактируемое то по нему можно перемещаться используя клавиатуру).
Все еще нету QPrinter и QSystemTrayIcon.

И еще не знаю баг ли это или нет, но при моделировании формы диалогового окна для hildon обычно не нужны кнопки Ok и Cancel. Есть сигналы accepted и rejected которые обычно генерируются этими кнопками и их достаточно просто связать с нужным методом. А вот какой сигнал получается при закрытии диалогового окна в Maemo при нажатии на неактивную область я пока не нашел. Приходится писать обработчик для closeEvent.

Сайт SR

Поделиться

7

Re: Разработка на Qt (в т.ч. PySide)

SR пишет:

И еще не знаю баг ли это или нет, но при моделировании формы диалогового окна для hildon обычно не нужны кнопки Ok и Cancel. Есть сигналы accepted и rejected которые обычно генерируются этими кнопками и их достаточно просто связать с нужным методом. А вот какой сигнал получается при закрытии диалогового окна в Maemo при нажатии на неактивную область я пока не нашел. Приходится писать обработчик для closeEvent.

Не понятно о каком диалоговом окне идет речь. О своем классе, наследуемом от QDialog?

Так или иначе, можно пробовать анализировать значение, возвращаемое методом exec().

Добавлено: 27.12.2009 15:24:54

А вообще, у меня вопросы по сборке Qt для Maemo есть.
Вот лежат у меня написанные несколько прог для ББ. Как их собрать и запустить под Maemo?

На то, о чем можно спросить на форуме, не отвечаю через личные сообщения, аську, почту и т.п. для общения есть jabber-конференция: maemo@conference.jabber.org.
QKit - инструментарий для быстрого кроссплатформенного создания приложений на QML.
FAQ по Nokia N9 - читаем, пополняем.
Прежде, чем задать вопрос, воспользуйтесь поиском!

Сайт KiRiK

Поделиться

8

Re: Разработка на Qt (в т.ч. PySide)

Для создания кинетического скроллинга в Qt должен быть модуль QtMaemo5 и в нем несколько классов, в тч QMaemo5KineticScroller. Вот тока в pyside я его не нашел sad

9

Re: Разработка на Qt (в т.ч. PySide)

KiRiK пишет:

Не понятно о каком диалоговом окне идет речь. О своем классе, наследуемом от QDialog?

Так или иначе, можно пробовать анализировать значение, возвращаемое методом exec().

Добавлено: 27.12.2009 15:24:54

А вообще, у меня вопросы по сборке Qt для Maemo есть.
Вот лежат у меня написанные несколько прог для ББ. Как их собрать и запустить под Maemo?

О наследуемом от QDialog. В своем классе я просто могу сам задать все что мне нужно.
Анализировать ничего не нужно если написать обработчик для closeEvent. Но вот если бы были сигналы то тогда для обработки вообще не пришлось бы писать ни строчки кода. Тогда можно бы было просто при дизайне формы связать нужный сигнал с нужным методом и все.

Чтобы собрать программы нужно поставить SDK. Дальше в SDK необходимо доставить либо libqt4-dev из репозитория SDK для Qt 4.5 либо libqt4-maemo5-dev из extras-devel для Qt 4.6. Ну и дальше либо собирать по всем правилам как пакет в debian либо используя qmake и make.

pasaranax пишет:

Для создания кинетического скроллинга в Qt должен быть модуль QtMaemo5 и в нем несколько классов, в тч QMaemo5KineticScroller. Вот тока в pyside я его не нашел sad

Вообще мне казалось что для hildon окружения такая прокрутка должна работать сразу. Иначе я в Qt 4.6 вообще не вижу возможности хоть как-то прокручивать элементы там даже полосы прокрутки нет. Попробую посмотреть как на C++ с QMaemo5KineticScroller дела обстоят.

И я еще забыл про один недочет. Qt 4.6 ставится в /opt но при этом /opt не находится в PATH и при установке не создаются ссылки в корневой системе. Для использования инструментов сборки (qmake) приходится либо добавлять /opt в PATH либо писать полный путь.

Сайт SR

Поделиться

10 (03.01.2010 23:06:03 отредактировано pasaranax)

Re: Разработка на Qt (в т.ч. PySide)

Как выйти в дэшборд если приложение развернуто на полный экран?

Кстати, кинетический скролл включается очень просто. Вот пример на питоне, на С++ должно быть аналогично.

    l = QListWidget()
    l.addItems(["item" + str(i) for i in xrange(50)])  # заполним 50 элементами вида "item#"
    scroller = QMaemo5KineticScroller(l)
    l.show()

SR, попробуй приделать в QStarDict.

Поделиться

11

Re: Разработка на Qt (в т.ч. PySide)

Для выхода попробуй Ctrl+Backspace.
А Qmaemo5KineticScroller я пытался пробовать. В стабильной версии Qt его похоже еще нет а в нестабильной его уже убрали и рекомендуют убрать из программ так как в дальнейшем кинетическая прокрутка будет частью стандартного Qt а не специфичной функцией. Только это похоже еще не доделали. У каждого элемента виджетов в которых может быть полоса прокрутки должно появиться свойство FingerScrollable а саму кинетическую прокрутку можно включить используя setProperty("FingerScrollable", true); На данный момент это не вызывает никаких ошибок или предупреждений про сборке но на работе прокрутки никак не отражается.
Вообще со следующим обновлением прошивки я так понял будет и обновление Qt. Там как минимум обещают исправление русского ввода. Так что посмотрим что будет в новой версии.

Сайт SR

Поделиться

12

Re: Разработка на Qt (в т.ч. PySide)

SR пишет:

Для выхода попробуй Ctrl+Backspace

Это само собой smile я спрашиваю про программный способ.

Поделиться

13

Re: Разработка на Qt (в т.ч. PySide)

А вот программное это наверное будет специфичной функцией для Maemo. А с этими функциями пока все очень непонятно (нет документации, их список постоянно от сборки к сборке меняется). Разве что могу посоветовать посмотреть заголовочные файлы Qmaemo5* классов.

Сайт SR

Поделиться

14

Re: Разработка на Qt (в т.ч. PySide)

А маемовское меню при клике на заголовке приложения сейчас можно сделать с помощью Qt?

Поделиться

15

Re: Разработка на Qt (в т.ч. PySide)

В Qt 4.6 такой стиль меню сразу и будет. Для этого там вообще ничего дополнительно не нужно указывать.
В Qt 4.5 сделать такое меню нельзя.

Еще один новый замеченный баг. Если в программе есть какие-нибудь сочетания клавиш (например Ctrl+Q на действие Exit из меню на главном оке) то на компьютере они работают как и должны а на Maemo они просто игнорируются. И еще плохо то что для Qt 4.5 такие сочетания автоматически добавляются в названия пунктов меню и убрать это нельзя (ну или по крайней мере я не нашел как не убирая само сочетание клавиш).

Сайт SR

Поделиться