Перерисовка формы, Порошу помощи. |
Здравствуйте, гость ( Вход | Регистрация )
Перерисовка формы, Порошу помощи. |
Гость_Гость_progmax_*_* |
24.2.2011, 23:17
Сообщение
#1
|
Гости |
Есть такой код:
testtest - основное приложение где происходит запрос к базе. doUserNameCheckFree - проверяет наличие логина в базе. из приложения testtest вызывается userRegistrationDialog->updateRegistrationForm(); дабы обновить поля формы. И нифига не работает!, точнее работает заходит в условие ставит ui.EmailEdit->setEnabled(false); НО форма НЕ перерисовывается, то-есть виджеты не обновляются. прошу помощи, пробовал вызывать ui.layoutWidget->update(); ui.layoutWidget->repaint(); не помогает. |
|
|
abc |
24.2.2011, 23:32
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
не понял, что должно произойти с виджетами? в функции вроде ничего и не написано
|
|
|
Гость_Гость_progmax_*_* |
24.2.2011, 23:41
Сообщение
#3
|
Гости |
Все разрешил сам , все как писал дядюшка Шлее)
|
|
|
abc |
24.2.2011, 23:48
Сообщение
#4
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
а зачем здесь const?
|
|
|
Алексей1153 |
3.3.2011, 8:46
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
abc, полезно, если не нужно случайно дальше по течению кода менять значение переменной - компилятор тыкнет носом )
|
|
|
abc |
3.3.2011, 12:12
Сообщение
#6
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
я просто думаю, что конст для локальных переменных без надобности
|
|
|
Litkevich Yuriy |
3.3.2011, 15:09
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
abc |
3.3.2011, 15:34
Сообщение
#8
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
Я читал, что оптимальный вариант передавать переменную в функцию так, если не хочется изменять:
func(const int& x) - объявили и с этой функцией уже можно спокойно работать так: { int y; func(y); } В этом случае по логике программы не нужно у объявлять константной. Или компилятору и в этой ситуации было бы лучше, чтобы она была константной? Сообщение отредактировал abc - 3.3.2011, 15:39 |
|
|
Алексей1153 |
3.3.2011, 19:49
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
abc, это потому что TYPE& по умолчанию и без проблем приводится к const TYPE&. С указателями так же
Если сильно придирчиво подойти к вопросу, то константный локальных или стековых переменных вообще не бывает, их содержимое можно легко поменять при надобности. Но необходимость этого - признак кривого проектирования (либо прям ваще суровая необходимость, пример чуть ниже приведу) Если же переменная не должна поменяться, всегда делай её const. Просто на всякий случай И тот самый пример (для винды, правда): имеется класс, одним из членов которого является объект критичесвкой секции. Также имеется константный метод (читаем что-либо из массива, инкапсулированного внутри класса). Вроде всё возможно, так как чтение не меняет массив. Но тут такая неприятность, что у объекта критической секции метод Lock неконстантный. Вот и придётся принудительно привести this к неконстантному типу, чтобы было возможно вызвать метод |
|
|
BRE |
3.3.2011, 20:06
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
И тот самый пример (для винды, правда): имеется класс, одним из членов которого является объект критичесвкой секции. Также имеется константный метод (читаем что-либо из массива, инкапсулированного внутри класса). Вроде всё возможно, так как чтение не меняет массив. Но тут такая неприятность, что у объекта критической секции метод Lock неконстантный. Вот и придётся принудительно привести this к неконстантному типу, чтобы было возможно вызвать метод А почему для этого не воспользоваться модификатором mutable? |
|
|
Текстовая версия | Сейчас: 2.1.2025, 19:59 |