Найти - Пользователи
Полная версия: русский текст в gui на pyqt4
Начало » GUI » русский текст в gui на pyqt4
1
legat
Всем доброго дня!
Я только начал изучать создание gui на питоне с помощью pyqt4 и столкнулся с такой проблемой:
если в приложении есть русский текст то при запуске выпадает ошибка -
SyntaxError: Non-UTF-8 code starting with ‘\xcf’ in file C:\Documents and Settings\apolyakov\workspace\pyGUI\pyGUI.py on line 11, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

прошел по ссылке в ошибке но так и не смог разобраться.

использую связку python3.2 + pyqt4 + eclipse3.7.1(pydev)

код программы обычный helloworld
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
import sys
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.setWindowTitle("Привет мир Pyqt4")
window.resize(300, 70)
label = QtGui.QLabel("<center>Привет мир!</center>")
btnQuit = QtGui.QPushButton("&Закрыть окно")
vbox = QtGui.QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(btnQuit)
window.setLayout(vbox)
QtCore.QObject.connect(btnQuit, QtCore.SIGNAL("clicked()"),
QtGui.qApp, QtCore.SLOT("quit()"))
window.show()
sys.exit(app.exec_())
на одном из форумов нашел инфу что если добавить ‘u’ перед текстом то он будет отображаться нормально, но у меня все равно выскакивает та же ошибка.
...
window.setWindowTitle(u"Привет мир Pyqt4")
...
как можно это исправить?
dartNNN
Хм… даже не знаю с чего начать. В общем надо сначала вам изучить сам питон, т.к. вопрос к gui не имеет ни малейшего отношения. Второе: изучить, разобраться, полностью понять, перечитать и еще раз разобраться со всем, что касается кодировок текста, т.к. на эти грабли вы еще не раз наступите (по своему опыту говорю). Третье на зубок знать все отличия питона ветки 2.х от ветки 3.х, т.к. u“” - это для 2.x, для 3.х не имеет смысла (там строки по умолчанию юникодные).
Теперь по сути вопроса: питон интерпретирует текст, текст в какой-то кодировке, питон должен знать эту кодировку, по умолчанию питон считает, что текст в utf-8. Решение: сохраните свой файл с кодом в кодировке utf-8 (тру вей) или в начале определите кодировку в которой сохранен файл (-*- coding: cp1251 -*- или -*- coding: koi8-r -*- в зависимости от религиозных предпочтений)
legat
Понятно, спасибо! гуи я рановато похоже решил изучать
Ginibe
legat
ничего не рано !
меня в первую очередь интересовал вопрос быстрой разработки интерфейса и PyQt позволил это сделать, в т.ч. изучить механизм, буквально за несколько дней, главное найти действующий пример
правда я в среде Win XP, как средство разработки и отладки использую JetBrains PyCharm 1.2.1, сам интерпретатор версии 2 потому что он уже отработан вдоль и поперк а также уйма примеров и статей
попробуй начать со 2-й версии питона, а когда проникнешь - двигай дальше

у меня твой пример сработал правильно, добавил перед строками u, как положено для Python 2.x и всего ….
может дело на в питоне … может еклипс лагает, я с ним особо не возился, а только пробовал, больше понравился пайшарм
попробуй в питоновском IDLE запустить, должен быть в дистрибутиве/пакете
denmariupol
Аналогичная проблема.python 2.7.2.Запускаю через блокнот).Когда кодировку меняешь на cp1251,все ок
legat
Ginibe
legat
ничего не рано !
меня в первую очередь интересовал вопрос быстрой разработки интерфейса и PyQt позволил это сделать, в т.ч. изучить механизм, буквально за несколько дней, главное найти действующий пример
правда я в среде Win XP, как средство разработки и отладки использую JetBrains PyCharm 1.2.1, сам интерпретатор версии 2 потому что он уже отработан вдоль и поперк а также уйма примеров и статей
попробуй начать со 2-й версии питона, а когда проникнешь - двигай дальше

у меня твой пример сработал правильно, добавил перед строками u, как положено для Python 2.x и всего ….
может дело на в питоне … может еклипс лагает, я с ним особо не возился, а только пробовал, больше понравился пайшарм
попробуй в питоновском IDLE запустить, должен быть в дистрибутиве/пакете
Спасибо за советы! оказалось что в редакторе кодировка была не поставлена на utf-8, проблему решил. эклипс конечно очень навороченный (куча настроек, модули, библиотеки…). ну возможно это дело привычки. Сегодня попробую покопаться в пайшарме.
и еще вопрос:
Может быть знаешь какую-нибудь доступно написанную литературу по pyqt? я нашел только недописанную книгу “Прохоренок Н.А. - Pyqt. Создание оконных приложений на Python 3”. но в ней опубликовано всего 6 глав, а заявлено по-моему 11 или 12.
Ginibe
legat
PyQt переведен лениво, для ввода в программирование с его использованием куча статей, оч хороших, но глубокого перевода документашки ни по одной из версий нет, сам сейчас сижу и перевожу как могу доку с ривербанка, капец как плохо, что инглишь в школе проходил “мимо”
вот несколько ссылочек которые мне помогли буквально за пару выходных накрапать несколько полезных примочек, на работе юзают с благодарностью :)

http://forum.ubuntu.ru/index.php?topic=39110.0
http://doc.crossplatform.ru/qt/4.3.2/
http://lib.rus.ec/b/180308/read
http://razum2um.ambitiouslemon.com/2009/07/04/pyqt4-i-pelmeni-tutorial/
http://forum.vingrad.ru/forum/topic-159421/kw-pyqt/view-all.html
http://forum.vingrad.ru/forum/s/a35a6030c7c94e0c43c11f8e884a6163/topic-159421.html
http://wiki.python.su/Документации/ВведениеВСредуPyQt4
http://habrahabr.ru/blogs/qt_software/44692/

пусть тебя не смущают ссылки на ресурсы программеров на Сях, там тоже есть полезные моменты, ведь PyQt - это Сишная библия
legat
Ginibe
legat
PyQt переведен лениво, для ввода в программирование с его использованием куча статей, оч хороших, но глубокого перевода документашки ни по одной из версий нет, сам сейчас сижу и перевожу как могу доку с ривербанка, капец как плохо, что инглишь в школе проходил “мимо”
вот несколько ссылочек которые мне помогли буквально за пару выходных накрапать несколько полезных примочек, на работе юзают с благодарностью :)

http://forum.ubuntu.ru/index.php?topic=39110.0
http://doc.crossplatform.ru/qt/4.3.2/
http://lib.rus.ec/b/180308/read
http://razum2um.ambitiouslemon.com/2009/07/04/pyqt4-i-pelmeni-tutorial/
http://forum.vingrad.ru/forum/topic-159421/kw-pyqt/view-all.html
http://forum.vingrad.ru/forum/s/a35a6030c7c94e0c43c11f8e884a6163/topic-159421.html
http://wiki.python.su/Документации/ВведениеВСредуPyQt4
http://habrahabr.ru/blogs/qt_software/44692/

пусть тебя не смущают ссылки на ресурсы программеров на Сях, там тоже есть полезные моменты, ведь PyQt - это Сишная библия
Благодарю! как раз в выходные посижу :)
Ginibe
legat, глянь еще в эту сторону:
частично переведенная дока Qt (в контексте C++) версии 4.1 - http://qtdocs.narod.ru/4.1.0/doc/html/index.html , имхо концепция описана более доходчиво чем на http://doc.crossplatform.ru/qt/4.3.2/ (более свежая версия)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB