Как я реализую QHoverEvent в QT?

Думаю, проблема в твоей регистрации. Вы неправильно храните пароль в представлении 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 .

7
задан Angie Quijano 19 April 2016 в 17:29
поделиться

3 ответа

Используя сигналы и слоты с этой целью не собирается работать.

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

7
ответ дан 6 December 2019 в 05:56
поделиться

Согласно ссылке на документ, которую Вы даете, Вы только собираетесь получить этот QHoverEvent, если Ваш виджет имеет Qt::WA_Hover флаг.

После построения вызова виджета:

widget->setAttribute(Qt::WA_Hover);

и посмотрите, работает ли это.

Другой способ достигнуть того же результата состоит в том, чтобы переопределить mouseMoveEvent() в Вашем виджете
заметьте, что эта функция также не будет обычно вызываться, если Вы не будете звонить:

widget->setMouseTracking(true);

Это в основном как спокойные реализации событие при наведении курсора внутренне.

13
ответ дан 6 December 2019 в 05:56
поделиться

Необходимо разделить на подклассы или отфильтровать focusInEvent и focusOutEvent того конкретного виджета.

-3
ответ дан 6 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: