![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_Userg_* |
![]()
Сообщение
#1
|
Гости ![]() |
Подскажите, что происходит.
Есть код: main.cpp
widget.h
widget.cpp
Постоянно "прилетает" paintEvent. |
|
|
![]() |
marsel |
![]()
Сообщение
#2
|
Студент ![]() Группа: Новичок Сообщений: 15 Регистрация: 29.1.2013 Пользователь №: 3693 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Всё очень просто. У тебя в spinBox курсор мигает?
paintEvent вызывается, когда надо перерисовать что то. Вот спинбокс и вызывает paintEvent, чтобы нарисовать или стереть курсор. И по коду, зачем перед void paintEvent(QPaintEvent *) написал virtual? Она же и так виртуальная. Лучше уж тогда использовать override из 11 стандарта или уж ничего не писать. |
|
|
ahalaj |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
И по коду, зачем перед void paintEvent(QPaintEvent *) написал virtual? Она же и так виртуальная. Для лучшей читабельности IMHO. Исходный текст прежде всего читать будет сам автор лет через несколько (и может быть кто-нибудь ещё), а уже после компилятор C++, которому как раз по барабану указано ли "virtual" только в родном заголовочном файле Qt или же продублировано ещё у автора. Лучше уж тогда использовать override из 11 стандарта или уж ничего не писать. Это только для C++ 11, на который пока ещё не все перешли. Иначе явный virtual, облегчает чтение исходников и не вынуждает лазить в заголовки чтобы узнать виртуальная это функция или нет или забивать мозги запоминанием полных сигнатур функций. Это естественно всё моё IMHO, никому не навязываю, просто говорю что так реально удобнее. Написать лишние 7 букв virtual не так сложно и не так затратно по времени по сравнению с поиском/запоминанием всего и вся. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.4.2025, 7:47 |