Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 16, 2015 18:03:01

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView не выводит дату

Добрый вечер .
Очень нужна помощь.

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()]


self.decode_r заполняем из таблицы MYSQL.
QTableView отображает все кроме дат. Я так понял проблема в том что запрос из БД возвращает datetime.date( ). Как можно решить эту проблему. Уже третий день сижу над этим.

Офлайн

#2 Янв. 16, 2015 18:37:37

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView не выводит дату

Ладно, диплом у меня через 5 дней, пока выкрутился таким способом:

        SQL ="SELECT DATE_FORMAT( DATA_OUV,'%Y-%m-%d'), DATE_FORMAT(DATA_OINV,'%Y-%m-%d'),VALLDAY FROM vTABLE"

Офлайн

#3 Янв. 16, 2015 18:56:19

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

QTableView не выводит дату

давайте весь код и бд, посмотрим



————————————————
-*- Simple is better than complex -*-

Офлайн

#4 Янв. 16, 2015 22:57:45

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2757
Репутация: +  184  -
Профиль   Отправить e-mail  

QTableView не выводит дату

> Я так понял проблема в том что запрос из БД возвращает datetime.date( ). Как можно решить эту проблему.

Преобразуй её в строку и выводи.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Янв. 19, 2015 05:34:37

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView не выводит дату

Спасибо, заработало.

Теперь другая проблема.
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')))
'QString' object has no attribute ‘encode’
Пробовал
BDUSER = unicode(self.LineEditNameL. text())
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-1: ordinal not in range(128)

Все работает но с этим проблема. А в четверг диплом(((

Офлайн

#6 Янв. 19, 2015 06:15:35

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView не выводит дату

Сори если туплю, не сплю 3тие сутки.
Нашел такой выход.

        BDUSER = str(self.LineEditNameL. text().toUtf8())
        BDUSE = BDUSER.decode("utf-8")
        print BDUSE

Если есть элегантнее, сообщите плз. Всем хорошей недели

Офлайн

#7 Янв. 19, 2015 06:28:55

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

QTableView не выводит дату

а вы после сдачи диплома кем будете?
профессиональным задавальщиком вопросов?

Cheryrg
не сплю 3тие сутки
на 3 сутки начинаются галлюцинации
Cheryrg
Если есть элегантнее
смотря на ваш класс LoginWindow я не думаю что эти строки как-то испортят всю “красоту”



————————————————
-*- Simple is better than complex -*-

Офлайн

#8 Янв. 19, 2015 06:44:52

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView не выводит дату

terabayt
а вы после сдачи диплома кем будете?профессиональным задавальщиком вопросов?

Я Вас чем то обидел? Или это врожденная надменность? Я взялся за питон и вообще за эту тему, только потому что ничего в нем не знал и хотел научится. Если у меня есть какие то глупые ошибки, можно мне на них указать. Тем более я не просто спрашиваю и жду готового решения, а пытаюсь найти его сам.

Офлайн

#9 Янв. 19, 2015 09:32:11

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

QTableView не выводит дату

Cheryrg
Тем более я не просто спрашиваю и жду готового решения, а пытаюсь найти его сам.
это хорошо. вы молодец, я вижу что вы работаете
но я так подразумеваю что после сдачи диплома вы будете идти работать программистом?
Cheryrg
Я Вас чем то обидел?
нет, прост нам прислали пару стажеров, так сказать на новый год
а они такое пишут… вот всю ночь сидел и писал что и где у них не так, осталось 10 дней до конца и не думаю что кто-то сделает таск
вот вы и попали под горячую руку



————————————————
-*- Simple is better than complex -*-

Офлайн

#10 Янв. 19, 2015 09:47:54

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView не выводит дату


terabayt
это хорошо. вы молодец, я вижу что вы работаете
но я так подразумеваю что после сдачи диплома вы будете идти работать программистом?
К сожалению много упущено что бы стать программистом. У меня есть профессия, этот проект - это лишь попытка доказать себе что могу сделать диплом сам, не получая готовый от руководителя или покупая. Ну и мало ли куда жизнь задвинет, лишним не будет. Изначально мне его дали готовый и на Делфи.


Все же не могу понять что ужасного в LoginWindow. Многое сделал по учебнику Прохоренок Н.А. - Python 3 и PyQt.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version