Russian Qt Forum
Май 21, 2024, 11:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 53 54 [55] 56 57 58
811  Qt / Вопросы новичков / Re: Как сделать чтоб компилятор не выдавал лишних предупреждений? : Июнь 14, 2012, 21:10
Правильнее было бы ограничить выдачу предупреждений опциями компилятора. Например, чтобы убрать все предупреждения, надо в профайл добавить строку
QMAKE_CXXFLAGS += -w
812  Qt / Model-View (MV) / Re: QTreeView + Model: начало : Июнь 04, 2012, 20:21
Есть посвежее:
http://qt-project.org/doc/qt-4.8/modelview.html.
http://qt-project.org/doc/qt-4.8/examples-itemviews.html - документированные примеры (со звездочкой).
Еще полезная статья http://doc.trolltech.com/qq/qq10-mvc.html (перевод-http://wiki.crossplatform.ru/index.php/Реализация_Model/View/Controller) иллюстрирующая, например, как переустанавливать обработчики сигналов.

813  Программирование / Python / Re: [Решено] Сборка PythonQt под Windows : Май 29, 2012, 09:28
Внимательнее посмотрите python.prf.
814  Программирование / Python / Re: [Решено] Сборка PythonQt под Windows : Май 26, 2012, 11:43
Судя по всему, вы работаете с исходным дистрибутивом, который давно устарел. Для него нужно с делать явное преобразование типов:
  в файле PythonQtConversion.cpp из состава проекта src делаем явное преобразование типов в строках 677 и 1043:
    r = QString::fromUtf16((const ushort*)PyUnicode_AS_UNICODE(val));
  и
    return PyUnicode_FromUnicode((const Py_UNICODE*)str.utf16(), str.length());

Вам нужно скачать trunk с текущем релизом (221), там эта ошибка давно устранена:
http://pythonqt.svn.sourceforge.net/viewvc/pythonqt/trunk/
и на этой странице "Download GNU tarball".
Из каталога C:\PythonQt2.0.1 удаляете все содержимое и разархивируете туда полученный файл. Далее - по моим рекомендациям (правда, они - для 219 ревизии, но изменений не должно быть много).
815  Qt / Model-View (MV) / Re: QTreeView + Model: начало : Май 25, 2012, 23:13
Цитировать
Д1/атр1/атр2/атр3/
---П1/атр4/атр5/атр6
...
Как нужно подготовить данные, чтобы можно было построить такое дерево? В каком формате хранить?
Очень напоминает XML. Сам сейчас пробую пристроить model/view на список xml-документов. Может, между моделью и xml сделать прослойку SQL?
816  Qt / Общие вопросы / Re: Как преобразовать строку QString : Февраль 29, 2012, 10:17
Это называется "разобрался"? В замешательстве
817  Qt / Общие вопросы / Re: Как преобразовать строку QString : Февраль 28, 2012, 12:27
Можно посмотреть строку при трассировке в QtCreator'e, в окне "Переменные и выражения". Нужно только поставить флажок "Изменить формат отображения/Считать все символы печатными".
И, сдается мне, проблема не в преобразовании текста в различных кодировках, а в самой реализации qDebug. Где-нибудь стоит toLatin1, тупо обрезая таблицу символов.
818  Qt / Интернационализация, локализация / Re: Как вывести русский текст в нужной кодировке на Linux : Февраль 22, 2012, 23:12
Цитировать
Проблема собственно в самом Qt. В том, что по умолчанию он для const char* строк использует кодировку latin1, в которой нет набора русских символов.
Хороший пример. Могу дополнить примером с PythonQt, в котором для поддержки русского нужно в двух местах заменить toLatin1 на toAscii (http://www.prog.org.ru/topic_17773_0.html). А сколько в сети программ, в которых поддерживается пара десятков языков за исключением русского? Это приносит свои плоды, уже находятся люди, которые заявляют, что программист, не знающий американского, не нужен... Может, поэтому в сети все чаще встречаются люди, которые плохо знают русский? Грустно, коллеги...
819  Qt / Интернационализация, локализация / Re: Как вывести русский текст в нужной кодировке на Linux : Февраль 21, 2012, 19:39
Цитировать
Другой юзер отредактирует этот код в другом редакторе или в другой кодировке и всё - поплывёт твой русский.
Пытаюсь представить себе эту ситуацию и никак... Этот, другой, когда открывает текст для правок, не видит, что он  в кракозябрах? Или он корректирует какую-то часть, не обращая внимания на остальной текст?
Если программа интернациональная, наверное, вариантов нет, кроме выбора единого языка. Ну, пусть будет американский.
А если проект русскоязычный? Зачем такие сложности, не проще ли команде разработчиков договориться о кодировке исходников?
820  Программирование / Python / Re: [Решено] Сборка PythonQt под Windows : Декабрь 04, 2011, 20:12
Обновил предыдущее сообщение с описанием процесса сборки PythonQt с учетом нового релиза исходников библиотеки из репозитория http://pythonqt.svn.sourceforge.net/viewvc/pythonqt/.
821  Qt / Общие вопросы / Re: из одной кодировки в другую (РЕШЕНО) : Октябрь 16, 2011, 12:58
Недавно натолкнулся на это сообщение: http://www.sql.ru/forum/actualthread.aspx?tid=867419.
На мой взгляд, это самое толковое объяснение принципа работы с кодировками в Qt. Привожу полный текст сообщения:
Цитировать
QTextCodec - это такая хитрая хрень, в которой хитрости больше, чем смысла.

Хитрость в том, что кодек надо создавать всегда с названием какой-то кодировки, например "cp-1251". Читатель спросит: есть два рубля? а почему одной? А если я хочу перекодировать из cp1251 в Utf-8?

Идея такая: кодек, который вы создаёте с указанием конкретной кодировки, умеет лишь гонять строку между указанной кодировкой и юникодом. Юникод - это не utf-8/utf-32, а жирная 2-байтовая таблица кодов; utf-8 - это не юникод, не надо путать, а только одно из представлений юникода.

Так вот, после того как вы создали кодек (например "cp-1251") он предлагает вам гонять строку в двух направлениях "UNICODE <---> cp1251".

Чтобы засобачить cp1251 в KOI8, вам надо создать два кодека, потом проделать операцию "cp1251 ---> UNICODE ---> KOI8".

У кодека есть две основные операции:
* toUnicode
* fromUnicode

Это и есть два вышеописанных направления. Когда для кодека "cp1251" вы вызываете "toUnicode()" - это направление "cp1251 -> UNICODE", а когда fromUnicode(), то наоборот "UNICODE -> cp1251".

toUnicode() всегда возвращает QString, так как QString - это массив двухбайтовых значений - как раз для переноски юникода.
fromUnicode() всегда возващает массив байт QByteArray, так как направление "из UNICODE в КАКУЮ_ЛИБО_КОДИРОВКУ" предполагает возврат юзеру потенциально диких с точки зрения QString кусков памяти, поэтому проще QByteArray().
822  Программирование / Python / Re: Сборка PythonQt под Windows : Апрель 26, 2011, 18:43
Обещанный рецепт сборки PythonQt (232 revision).

1) Используем Qt SDK 1.2.1 (Open Source), установленный в C:\QtSDK, Windows 7 домашняя базовая 64 бит. Для WinXP примерно все то же самое.

2) Скачиваем архив с утилитами mingw (MinGW Utilities 0.3 Windows Binary)
 http://olex.openlogic.com/packages/mingw-utils/0.3#package_detail_tabs

Разархивируем каталоги bin и doc полученного архива в соответствующие каталоги C:\QtSDK\mingw\bin и doc.

3) Ставим Python 2.6 из дистрибутива в каталог по умолчанию C:\Python26
 http://www.python.org/ftp/python/2.6.6/python-2.6.6.msi

4) В командной строке из состава Qt SDK переходим в каталог C:\Python26\libs и выполняем:

Setting up environment for Qt usage...
C:\windows\system32>cd C:\Python26\libs
C:\Python26\libs>pexports C:\Windows\SysWOW64\python26.dll >python26.def
C:\Python26\libs>dlltool --dllname python26.dll --def python26.def --output-lib libpython26.a

При использовании утилиты pexports путь до dll указывать нужно, иначе получим ошибку "pexports: python26.dll: could not load PE image".
Для dlltool это не обязательно. Путь у меня указан для Windows7. В WinXP библиотека лежит в system32.
Результатом этих шагов является библиотека импорта libpython26.a, которую и будем использовать для сборки PythonQt.

5) Скачиваем исходники PythonQt из SVN репозитория (дистрибутив весьма устарел):
 http://pythonqt.svn.sourceforge.net/viewvc/pythonqt/
и разархивируем в каталог C:\PythonQt2.1

6) Корректируем def-файлы в каталоге C:\PythonQt2.1\build.

python.prf - указываем в явном виде каталоги и файлы. Сюда же прописываем путь до исходников PythonQt (наверное, это не очень здорово, но зато работает под Windows7). Поскольку отладочной версии Питона в дистрибутиве нет, то для отладки и релиза используем одну и ту же библиотеку импорта:
Код:
  win32:INCLUDEPATH += c:/Python26/include C:/PythonQt2.1/src
  win32:LIBS += c:/Python26/libs/libpython26.a

common.prf - раскомментируем строку (хотя это можно и не делать, наверное - собирать будем в креаторе):
Код:
  CONFIG += debug_and_release build_all

PythonQt.prf - корректируем имя и расширение библиотеки:
Код:
  win32::LIBS += $$PWD/../lib/libPythonQt$${DEBUG_EXT}.a
PythonQt_QtAll.prf - то же самое:
Код:
  win32::LIBS += $$PWD/../lib/libPythonQt_QtAll$${DEBUG_EXT}.a

7) Запускаем Qt Creator и открываем проект C:\PythonQt2.1\PythonQt.pro. При открытии выбираем создание конфигурации одной отладочной и одной релизной сборки для профиля "Qt 4.8.1 for Desktop - MinGW (Qt SDK)", каталог сборки - C:\PythonQt2.1.
Сохраняем и выполняем qmake. Обратите внимание - будет создан каталог C:\PythonQt2.1\lib, там будут размещаться собранные библиотеки и исполняемые файлы примеров.

8 ) Корректируем исходники для обеспечения поддержки UTF-8 - заменяем toLatin1 на toAscii (см. http://sourceforge.net/projects/pythonqt/forums/forum/631392/topic/3805500 ):

 PythonQtScriptingConsole.cpp (PythonQtScriptingConsole::executeCode, 183):
    
Код:
p.setNewRef(PyRun_String(code.toAscii().data(), Py_single_input, dict, dict));

 PythonQt.cpp (PythonQt::evalScript, 727):
    
Код:
p.setNewRef(PyRun_String(script.toAscii().data(), start, dict, dict));

9) Выполняем команду "Собрать все". После завершения в каталоге C:\PythonQt2.1\lib будут размещены файлы библиотек (.a и .dll) и исполняемых файлов примеров.
Все.
  
823  Программирование / Python / Re: Сборка PythonQt под Windows : Апрель 26, 2011, 11:09
Все-таки проблема несовместимости библиотеки импорта python26.lib, поставляемой в составе дистрибутива Питона, с mingw.
Собрать PythonQt удалось. Проверю, выложу рецепт. Вкратце - создание библиотеки импорта для mingw из python2.dll с использованием утилит pexports, dlltool.
Прошу прощения у Филоненко М. - его сомнения я опроверг неправильно поставленным экспериментом  Грустный
824  Программирование / Python / Re: Сборка PythonQt под Windows : Апрель 22, 2011, 15:23
Таки *.lib файлы не поттягиваются MinGw до сих пор.
Вот сейчас подключил к проекту python26.lib, в программе сделал питоновские вызовы Py_Initialize () и Py_Finalize (). Компоновщик проглотил это молча, программа отработала.
В чем отсутствие поддержки lib?
825  Программирование / Python / Re: Сборка PythonQt под Windows : Апрель 21, 2011, 21:55
Помню, что Пайтон собирается msvc 6.0, а вот Qt - mingw. Может ли Ваша проблема заключатся в знаменитой несовместимости макрософт линкера с остальными участниками программистского цирка?
Это я тоже помню. Но вот беда, если посмотреть список всех символов, содержащихся в библиотеке питона:
> nm python26.lib >> symbols.txt
то нет там ни одного имени, о котором говорит линковщик... И я не могу это объяснить.
Может, кто-нибудь все же попробует собрать PythonQt?
А я попробую собрать Питона мингвой.
Страниц: 1 ... 53 54 [55] 56 57 58

Страница сгенерирована за 0.056 секунд. Запросов: 23.