Форум сайта python.su
Как вывести текст строки в читаемом виде?
Сейчас выводится:
C:\Documents and Settings\?????\??????? ????\test ??????\????? 1\?????? ???????? ???????? ??.xls
@QtCore.pyqtSignature("QListWidgetItem*")
def on_list1_itemDoubleClicked(self, item):
print self.list1.item(self.list1.row(item)).text().toAscii().data()
Офлайн
А причём здесь GUI?
ActivePython: решение проблем с кодировками
Офлайн
Все это понятно, но проблема в гуи. Как объяснить присвоение лабелу значения переменной и лабел отображает ее корректно, но стоит написать print переменная, как появляются ??? ??? ?? или ‘ascii’ codec can't encode characters in position 26-30: ordinal not in range(128)
Все перечисленное в ссылке пробовал в разных вариациях. Если бы получилось, сюда бы не писал.
Офлайн
LandingВот это и говорит о том, что проблема отнюдь не в GUI ;).
лабел отображает ее корректно, но стоит написать print переменная…
Офлайн
Спасибо, почти разобрался. Путем комбинаций unicode(), decode() удалось правильно отображать строку. Исходник в UTF-8. Но такая засада, в коде:
def on_bt_path_clicked(self):
directory = QtGui.QFileDialog.getExistingDirectory(self,
self.tr("Select folder"),
self.label_8.text(),
QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly)
if not directory.isEmpty():
self.folders = unicode(directory.replace("/","\\")).encode('cp1251')
self.label_8.setText(directory)
self.tr("Select folder"),
Отредактировано (Янв. 15, 2009 06:40:37)
Офлайн
LandingЧто значит “русские буквы”? Тебе перевод нужен?
Как в этом месте заставить показывать рус буквы?
Офлайн
Русские буквы, имеется ввиду их отображение не кракозябрами.
Офлайн
Нет примера, пригодного для запуска и отладки, поэтому непонятно, с чем боремся.
Офлайн
Как нет примера? А это:
QtGui.QFileDialog.getExistingDirectory
self.label1.setText("Всего обработано:".decode("CP1251"))
self.tr("Select folder")
Офлайн
LandingТы не понимаешь, что такое “пригодный для запуска пример”? Это то, что можно скопипастить и нажать F5, и оно не упадёт при проверке синтаксиса, ёлы-палы. Вот пригодный для запуска пример (найди различия с теми фрагментами, которые ты постил выше):
Как нет примера? А это:
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
directory = QtGui.QFileDialog.getExistingDirectory(None, u'ПРЕВЕД МЕДВЕД', u'C:\\Temp\\Закачки',
QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly)
QtGui.QMessageBox.information(None, u'ВЫ ВЫБРАЛИ:', directory, QtGui.QMessageBox.Ok)
Отредактировано (Янв. 18, 2009 17:16:23)
Офлайн