Найти - Пользователи
Полная версия: Проблема с PyQt4
Начало » GUI » Проблема с PyQt4
1
samyray
Добрый день/ночь!
Есть такой код:
for i in range(59):
self.comboBox_6.addItem(QtGui.QApplication.translate(“MainWindow”,“%s”, None, QtGui.QApplication.UnicodeUTF8) % QtCore.QString(i) )

Но питон выдает такую ошибку:
unhandled TypeError
“unsupported operand type(s) for %: ‘QString’ and ‘QString’”

Никто не подскажет как это можно решить?
gmorgunov
Привет.
Более/менее подробно эта тема( translate()) обсуждалась тут: http://python.su/forum/viewtopic.php?id=3054.

А так,мой перевод звучит так:
“ Нерукотворная ошибка( не ваша ) :)
типы операндов(QString) не поддерживаются питоновским форматированием (%)”.
poltergeist
:-D QtGui.QApplication.translate(“MainWindow”,“%s”, None, QtGui.QApplication.UnicodeUTF8) % QtCore.QString(i) - тут вы пытаетесь взять остаток от деления двух операндов типа QString. Откуда такая ересь?

Попробуйте так:
self.comboBox_6.addItem(QtGui.QApplication.translate(“MainWindow”, str(i), None, QtGui.QApplication.UnicodeUTF8))
или совсем просто:
self.comboBox_6.addItems(map(str, range(59)))
samyray
Большое спасибо…эту проблему решил
И если вам не сложно,вы б не могли объяснить как работает подобная конструкция:
self.comboBox_6.addItems(map(str, range(59)))
?
poltergeist
self.comboBox_6.addItems - принимает в качестве параметров список строк, например:
 self.comboBox_6.addItems(['0', '1', '2'])
range(3) == - список чисел
map(str, ) == - конвертирование из чисел в строки с помощью функции str
samyray
Понял,Спасибо
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