Форум сайта python.su
Добрый вечер .
Очень нужна помощь.
class MyTableModel(QtCore.QAbstractTableModel): def __init__(self, HeaderS, parent=None): super(MyTableModel, self).__init__() self.HeaderS = HeaderS self.decode_r = decode_r def rowCount(self, parent): return connection.affected_rows() # Возвращает число строк от последнего запроса def columnCount(self, parent): return 3 #___________________________________________________ def data(self, index, role): if not index.isValid(): return QVariant() elif role != Qt.DisplayRole: return QVariant() return self.decode_r[index.row()][index.column()]
Офлайн
Ладно, диплом у меня через 5 дней, пока выкрутился таким способом:
SQL ="SELECT DATE_FORMAT( DATA_OUV,'%Y-%m-%d'), DATE_FORMAT(DATA_OINV,'%Y-%m-%d'),VALLDAY FROM vTABLE"
Офлайн
давайте весь код и бд, посмотрим
Офлайн
> Я так понял проблема в том что запрос из БД возвращает datetime.date( ). Как можно решить эту проблему.
Преобразуй её в строку и выводи.
Офлайн
Спасибо, заработало.
Теперь другая проблема.
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-1: ordinal not in range(128)
class LoginWindow(QtGui.QDialog): def __init__(self): super(LoginWindow, self).__init__() self.setWindowTitle(u'Вход') self.setWindowIcon(QtGui.QIcon('123.ico')) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.MSWindowsFixedSizeDialogHint) #Поля ввода self.LineEditNameL = QtGui.QLineEdit(self) self.LineEditNameL.setFocus() #Фокус на self.LineEditNameL self.LineEditPassL = QtGui.QLineEdit(self) self.LineEditPassL.setEchoMode(2) # Отображение пароля звездочками #Кнопки self.ButLoginL = QtGui.QPushButton(u'Войти', self) self.ButCancelL = QtGui.QPushButton(u'Отмена', self) #Форма self.HboxL = QtGui.QHBoxLayout() self.HboxL.addWidget(self.ButLoginL) self.HboxL.addWidget(self.ButCancelL) #Форма self.FormL = QtGui.QFormLayout() self.FormL.addRow(u"Логин:", self.LineEditNameL) self.FormL.addRow(u"Пароль:", self.LineEditPassL) self.FormL.addRow(self.HboxL) self.setLayout(self.FormL) #Сигналы self.ButLoginL.clicked.connect(self.on_Login) self.ButCancelL.clicked.connect(self.close) def on_Login(self): global connection global cursor BDUSER = str(self.LineEditNameL. text()) BDPASSWORD = str(self.LineEditPassL. text()) try: connection = MySQLdb.connect(host="127.0.0.1",user=BDUSER,passwd=BDPASSWORD, db = "db", charset='utf8') cursor = connection.cursor() except MySQLdb.DatabaseError, x: x = str(x) reply = QtGui.QMessageBox.critical(self, u'Ошибка!!',x) else: self.hide() self.window = MainWindow() self.window.show()
BDUSER = str(self.LineEditNameL. text().encode('utf-8')))
BDUSER = unicode(self.LineEditNameL. text())
Офлайн
Сори если туплю, не сплю 3тие сутки.
Нашел такой выход.
BDUSER = str(self.LineEditNameL. text().toUtf8()) BDUSE = BDUSER.decode("utf-8") print BDUSE
Офлайн
а вы после сдачи диплома кем будете?
профессиональным задавальщиком вопросов?
Cheryrgна 3 сутки начинаются галлюцинации
не сплю 3тие сутки
Cheryrgсмотря на ваш класс LoginWindow я не думаю что эти строки как-то испортят всю “красоту”
Если есть элегантнее
Офлайн
terabayt
а вы после сдачи диплома кем будете?профессиональным задавальщиком вопросов?
Офлайн
Cheryrgэто хорошо. вы молодец, я вижу что вы работаете
Тем более я не просто спрашиваю и жду готового решения, а пытаюсь найти его сам.
Cheryrgнет, прост нам прислали пару стажеров, так сказать на новый год
Я Вас чем то обидел?
Офлайн
terabaytК сожалению много упущено что бы стать программистом. У меня есть профессия, этот проект - это лишь попытка доказать себе что могу сделать диплом сам, не получая готовый от руководителя или покупая. Ну и мало ли куда жизнь задвинет, лишним не будет. Изначально мне его дали готовый и на Делфи.
это хорошо. вы молодец, я вижу что вы работаете
но я так подразумеваю что после сдачи диплома вы будете идти работать программистом?
Офлайн