Думаю, проблема в твоей регистрации. Вы неправильно храните пароль в представлении signup
.
userdetails = CustomUser(firstname=firstname,lastname=lastname,email=email,password=password, areacode=areacode, number=number) # <-- Here
userdetails.save()
Поскольку вы не храните пароль должным образом (в настоящее время он хранится в виде обычного текста, а не хешированного), поэтому функция authenticate
не может получить пользователя.
Итак, вам нужно установить пароль следующим образом:
userdetails = CustomUser(firstname=firstname,lastname=lastname,email=email, areacode=areacode, number=number)
userdetails.set_password(password)
userdetails.save()
Для более подробной информации, пожалуйста, проверьте здесь функцию set_password .
Используя сигналы и слоты с этой целью не собирается работать.
mouseMoveEvent()
не сигнал или метаметод и не может быть подключен к слоту.
Разделение на подклассы класса виджета и переопределения mouseMoveEvent()
позволит Вам получать события перемещения мыши, но это - очень тяжелый способ выполнить это (и добавляет еще один класс к Вашей исходной базе).
Вместо этого рассмотрите реализацию eventFilter()
метод на Вашем MyDialog
класс и установка его на QLabel
. С этим методом фильтра события можно прервать все события для данного QObject
экземпляр.
Вот документация относительно Фильтров События.
http://doc.qt.io/qt-4.8/eventsandfilters.html#event-filters
Кроме того, посредством рассмотрения примера кода, я рекомендовал бы уделить минуту для исследования что SIGNAL()
и SLOT()
макросы делают. Вы видите, как они определяются в $QTDIR/src/corelib/kernel/qobjectdefs.h
Согласно ссылке на документ, которую Вы даете, Вы только собираетесь получить этот QHoverEvent, если Ваш виджет имеет Qt::WA_Hover
флаг.
После построения вызова виджета:
widget->setAttribute(Qt::WA_Hover);
и посмотрите, работает ли это.
Другой способ достигнуть того же результата состоит в том, чтобы переопределить mouseMoveEvent()
в Вашем виджете
заметьте, что эта функция также не будет обычно вызываться, если Вы не будете звонить:
widget->setMouseTracking(true);
Это в основном как спокойные реализации событие при наведении курсора внутренне.
Необходимо разделить на подклассы или отфильтровать focusInEvent и focusOutEvent того конкретного виджета.