Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 17, 2011 09:19:37

legat
От:
Зарегистрирован: 2011-11-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

Всем доброго дня!
Я только начал изучать создание 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")
...
как можно это исправить?



Офлайн

#2 Ноя. 17, 2011 12:03:57

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

Хм… даже не знаю с чего начать. В общем надо сначала вам изучить сам питон, т.к. вопрос к gui не имеет ни малейшего отношения. Второе: изучить, разобраться, полностью понять, перечитать и еще раз разобраться со всем, что касается кодировок текста, т.к. на эти грабли вы еще не раз наступите (по своему опыту говорю). Третье на зубок знать все отличия питона ветки 2.х от ветки 3.х, т.к. u“” - это для 2.x, для 3.х не имеет смысла (там строки по умолчанию юникодные).
Теперь по сути вопроса: питон интерпретирует текст, текст в какой-то кодировке, питон должен знать эту кодировку, по умолчанию питон считает, что текст в utf-8. Решение: сохраните свой файл с кодом в кодировке utf-8 (тру вей) или в начале определите кодировку в которой сохранен файл (-*- coding: cp1251 -*- или -*- coding: koi8-r -*- в зависимости от религиозных предпочтений)



Офлайн

#3 Ноя. 17, 2011 12:08:45

legat
От:
Зарегистрирован: 2011-11-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

Понятно, спасибо! гуи я рановато похоже решил изучать



Офлайн

#4 Ноя. 17, 2011 21:16:47

Ginibe
От:
Зарегистрирован: 2011-04-19
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

legat
ничего не рано !
меня в первую очередь интересовал вопрос быстрой разработки интерфейса и PyQt позволил это сделать, в т.ч. изучить механизм, буквально за несколько дней, главное найти действующий пример
правда я в среде Win XP, как средство разработки и отладки использую JetBrains PyCharm 1.2.1, сам интерпретатор версии 2 потому что он уже отработан вдоль и поперк а также уйма примеров и статей
попробуй начать со 2-й версии питона, а когда проникнешь - двигай дальше

у меня твой пример сработал правильно, добавил перед строками u, как положено для Python 2.x и всего ….
может дело на в питоне … может еклипс лагает, я с ним особо не возился, а только пробовал, больше понравился пайшарм
попробуй в питоновском IDLE запустить, должен быть в дистрибутиве/пакете



Отредактировано (Ноя. 17, 2011 21:37:04)

Офлайн

#5 Ноя. 18, 2011 06:05:46

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

Аналогичная проблема.python 2.7.2.Запускаю через блокнот).Когда кодировку меняешь на cp1251,все ок



Отредактировано (Ноя. 18, 2011 06:10:21)

Офлайн

#6 Ноя. 18, 2011 09:45:44

legat
От:
Зарегистрирован: 2011-11-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

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.



Офлайн

#7 Ноя. 18, 2011 10:14:55

Ginibe
От:
Зарегистрирован: 2011-04-19
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

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 - это Сишная библия



Отредактировано (Ноя. 18, 2011 10:16:40)

Офлайн

#8 Ноя. 18, 2011 12:28:04

legat
От:
Зарегистрирован: 2011-11-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

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 - это Сишная библия
Благодарю! как раз в выходные посижу :)



Офлайн

#9 Ноя. 23, 2011 09:03:09

Ginibe
От:
Зарегистрирован: 2011-04-19
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

русский текст в gui на pyqt4

legat, глянь еще в эту сторону:
частично переведенная дока Qt (в контексте C++) версии 4.1 - http://qtdocs.narod.ru/4.1.0/doc/html/index.html , имхо концепция описана более доходчиво чем на http://doc.crossplatform.ru/qt/4.3.2/ (более свежая версия)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version