Просмотр сообщений
|
Страниц: 1 ... 77 78 [79] 80 81 ... 96
|
1171
|
Qt / Пользовательский интерфейс (GUI) / Плагин из приложения.
|
: Июнь 02, 2011, 20:12
|
Есть некое приложение, нельзя сказать чтобы совсем маленькое, тысяч 30 строк. У него есть свое MainWindow:QMainWindow, в котором есть кучка "подокон", меню, тулбар и т.д. Теперь надо из этого приложения сделать плагин, чтобы его можно было подключать к другому приложению. Вот пока в раздумьях, как это лучше всего реализовать... Переписывать приложение, отказываться от MainWindow не с руки, это самый долгий путь, а время дорого. Поэтому вопрос - как поддержка плагинов в Qt 4.7 относится к тому, что в плагине может быть свое MainWindow? Допустимо ли это? Окно плагина обязательно должно присутствовать на экране одновременно с окном основного приложения (в частности, чтобы их можно было легко разнести на 2 монитора). Поэтому нельзя использовать окно основного приложения для размещения подокон плагина, да и технически это выглядело бы очень непросто.
Есть, конечно, вариант сделать общение между приложениями через IP, у такого варианта есть свои преимущества. Но есть и недостатки, причем более низкая скорость - самый существенный.
Кто какие идеи может подать? Принимаются к обсуждению любые варианты.
|
|
|
1172
|
Разное / Говорилка / Re: Qt - finita la comedia
|
: Апрель 28, 2011, 18:28
|
и Андроид устройства, и программы для них покупают гораздо активнее, чем йфоны и их программы
Пруфлинк? Пожалуйста, причем обратите внимание - информация от эпломанов, хотя по другим источникам тоже самое будет 3й абзац The App Store has grown by 132 percent over the last year (когда американцы говорят has grown, это не число приложений, а финансовый рост) 6й абзац Google's Android Market took fourth place, registering a 4.7 percent share on revenues of $102 million, representing growth of 861.5 percent compared to 2009 рост в 6.5 раз (!!!) больше, и это не числа приложений на Маркете, а именно REVENUE (доход, выручка) - то есть, приложения таки покупают-покупают! и активнее, чем на йфоне! судя по количеству выпускаемых Android-аппаратов, рынок приложений в год-два догонит и перегонит рынок приложений йфона, и продолжит расти - если, конечно, форсмажор не случится кому-то проще сделать хит, на котором можно ПОДЗАРАБАТЫВАТЬ, чем освоить Andriod SDK а что в этом удивляет? во-1ых, Android SDK - это Dalvik, ака Java, как бы совсем другой язык программирования, во-2ых, для освоения современного SDK требуется немалое время, поэтому разумеется проще и быстрее сделать на том, что уже освоено, чем переключаться на другой инструмент и Android SDK, и Qt достаточно сложны и объемны, чтобы для разработки качественных приложений на них требовались объемные знания инструмента, а подзарабатывать != халтурить, производством халтуры не занимаемся Кстати в соседней теме ищут разработчика на Qt под Android. не знаю, что и кого там могут искать (вот где пруфлинк бы пригодился) - но Qt на Android портируется не официально, причем с обеих сторон - ни Google это дело не поддерживает (поскольку противоречит самой идеологии Android), ни Nokia - значит есть большие сомнения в доверии к нему, и пока только альфа существует, это под альфу что-ли коммерческие приложения делать?? дай то Бог, если доведут до релиза, там посмотрим, но для коммерческого успеха будет необходима поддержка Google (для распространения приложений через Market), которой ожидать не приходится
|
|
|
1173
|
Разное / Говорилка / Re: Qt - finita la comedia
|
: Апрель 23, 2011, 20:51
|
- поясните пожалуйста про Андройд? Вы считаете там будут толпы "золотых" потребителей, как у apple? вообще-то в Android Market уже в 3 раза больше программ, чем в аналогичном магазине приложений для йфонов, и их число постоянно растет, поскольку и Андроид устройства, и программы для них покупают гораздо активнее, чем йфоны и их программы, а интеграция туда Qt ускорила бы этот рост, будь Qt интегрирован в Android, я бы лично, да и многие другие Qt-программисты на досуге могли бы делать приложения, и подзарабатывать через Маркет
|
|
|
1174
|
Qt / Работа с сетью / Re: А как просто картинку загрузить? [SOLVED]
|
: Апрель 23, 2011, 20:36
|
MainWindow::paintEvent() - будет вызван только после ресайза или update(). ничего подобного, он всегда вызывается при первой отрисовке окна, поэтому внутри него if( firstpaint ) { firstpaint = false; ..... } вполне съедобно, но не в том случае, если требуется работа с сетью, что к сожалению, нигде не документировано
|
|
|
1175
|
Qt / Пользовательский интерфейс (GUI) / Виджеты на тулбарах
|
: Апрель 20, 2011, 23:40
|
Как их на тулбары поместить, в принципе, понятно (хотя пока не пробовал) - а вот в дизайнере, никак что-ли вообще?
И заодно - как лучше всего сделать, чтобы виджеты можно было в приложении перетаскивать на тулбары из специальной панели? В современных крупных приложениях это общепринято, насколько я знаю, инструментарий типа Delphi это поддерживает. А вот готового решения в Qt что-то не вижу (может плохо смотрю). Это только вручную, с использованием QDrag можно сделать?
|
|
|
1176
|
Qt / Работа с сетью / Re: А как просто картинку загрузить? [SOLVED]
|
: Апрель 18, 2011, 22:13
|
все, победил - оказалось, что хотя QNetWorkManager и асинхронный, но при вызове его из обработчиков событий он корректно не работает
при вызове из отдельных тредов или слотов обработки сигналов таймера работает нормально
|
|
|
1177
|
Qt / Работа с сетью / Re: А как просто картинку загрузить?
|
: Апрель 18, 2011, 00:24
|
не, блин, мозги сломал... уже и с семафорами пробовал - бестолку наверно дело в том, что прорисовку картинок решил вставить в перегруженный метод paintEvent() void MainWindow::paintEvent( QPaintEvent * event ) { if( firstpaint ) { listmanager->get( QNetworkRequest( QUrl( "http://........" ) ) ); firstpaint = false; } } более подходящего места что-то не вижу, может кто подскажет? всадил туда, поскольку картинки надо показывать в окне, то есть, отрисовывать, и вроде как paintEvetn для этого подходящее место, но возможно нет когда загружен список картинок с помощью listmanager, метод его обработки вызывается void MainWindow::finishedList( QNetworkReply * reply ) { if( reply->error() == QNetworkReply::NoError ) { forever { QByteArray byteline = reply->readLine(); if( byteline.size() == 0 ) break; urllist << byteline; // urllist это QStringList } foreach( QString url, urllist ) imgmanager->get( QNetworkRequest( url ) ) ); } else networkerror = true; reply->deleteLater(); } и вот после этого косяк, запросы с адресами из urllist явно набиваются в очередь вызовами imgmanager->get(), и пока они не закончат набиваться, ни один из запросов не завершается, и только когда они все набились, все это завершилось, только тогда начинает стрелять вызовами void MainWindow::finishedImg( QNetworkReply * reply ), где собственно картинки рисуются в окне с помощью QLabel, и там же обрабатываются такое не годится, мне надо картинки обрабатывать последовательно, одну за другой, их могут быть десятки тысяч можно как-то пропихивать эту очередь в QNetworkAccessManager()?
|
|
|
1178
|
Qt / Работа с сетью / Re: А как просто картинку загрузить?
|
: Апрель 17, 2011, 20:27
|
переделал на использование QNetworkAccessManager, тем более, что с WebKit в статике не собирается
но манагер работает асинхронно, а мне надо по очереди грузить и обрабатывать изображения, и что-то никак не вижу, как корректно сделать ожидание загрузки каждой следующей картинки, цикл крутится, открывает кучу соединений, стремительно пожирает память, а слот обработки окончания загрузки самой первой картинки так и не запускается
хотя он правильно привязан, проверял на одной картинке - она грузится, слот вызывается, обрабатывает
тупо флаг взводить в обработчике завершения загрузки картинки - не правильно, будет процессор пожираться, да и не работает, кстати...
есть способ сделать сетевые операции синхронными, чтобы get() возвращался только когда обработчик завершения и все остальные отработают?
|
|
|
1179
|
Qt / Работа с сетью / Re: А как просто картинку загрузить?
|
: Апрель 15, 2011, 12:52
|
хотелось что-нибудь типа QImage pic = getWebImage( "http://сервер.там/image.jpg" ); если есть где-то готовое getWebImage(), но очевидно нет, значит придется самому написать, вместо одной строки будет лишние два десятка тем более, что WebKit в статике не собирается, начиная с 4.7.0 его поддержка для статической сборки отменена
|
|
|
1182
|
Qt / Работа с сетью / А как просто картинку загрузить? [SOLVED]
|
: Апрель 14, 2011, 15:31
|
Есть прямой урл картинки формата JPG. Надо ее получить в QImage. И что-то не очень видно, как это сделать. работать не должно, поскольку URL - не имя файла. Загружать всю страницу и разбирать ее содержимое через DOM не годится, программа получает прямые ссылки на картинки, которые надо слизать.
|
|
|
1184
|
Qt / Работа с сетью / Re: Как загрузить текстовую страницу для обработки?
|
: Апрель 13, 2011, 18:49
|
Лучше почитай про QNetworkAccessManager на этом уровне получается, надо самому озаботиться рендерингом и т.д., но хочется чтобы максимум автоматизации Qt использовалось походу QString QWebFrame::toPlainText () const так он в QString вернет весь текст страницы? только содержимое <body></body>? заголовок будет отброшен? как в QString будут разделены те строки, которые имеют тэг <b> в HTML коде? а если это plain text с обычными line break? концы строк останутся?
|
|
|
1185
|
Qt / Работа с сетью / Как загрузить текстовую страницу для обработки?
|
: Апрель 13, 2011, 17:31
|
Нужно с URL загрузить находящуюся там HTML страницу, после чего не показывать ее, а обработать содержащиеся в ней строки текста после ее рендеринга. Либо загрузить TXT-страницу без HTML тегов и обработать построчно содержащийся в ней текст. То есть, в обоих случаях надо получить текстовые строки загруженной страницы построчно в виде массива объектов QString (или в виде QList из объектов QString). Стили, таблицы, встроенные объекты страницы и т.д. не имеют значения - считается, что страница содержит только плоский текст с маркерами концов строк. Кодировка текста тоже не имеет значения, текст на английском.
Как это лучше всего делать? Опыта работы с Web в Qt нет, у Шлее практически ничего не описано. Где лучше почитать про работу с WebKit?
|
|
|
|
|