0 / 0 / 0
Регистрация: 19.02.2015
Сообщений: 4
|
||||||
1 | ||||||
Как в обработчике нажатия кнопки использовать локальную переменную другого метода?27.11.2015, 03:03. Показов 998. Ответов 8
Метки нет Все метки)
(
Нужно чтобы в методе кнопки clicked() можно было использовать переменную db из MainWindow
0
|
|
27.11.2015, 03:03 | |
Ответы с готовыми решениями:
8
Синтаксис, использовать переменную из другого метода Каким образом использовать структуру метода обработчика мыши на примере нажатия левой кнопки Как использовать в проекте локальную переменную, измененную в цикле |
676 / 452 / 159
Регистрация: 01.10.2015
Сообщений: 1,259
|
|||||||||||
27.11.2015, 03:21 | 2 | ||||||||||
Объявите db в хедере MainWindow:
QSqlDatabase db = QSqlDatabase::database(); , дальше запрашиваете isOpen(), если соединение не открыто, то подробнее об ошибке можно узнать с помощью lastError().P.S.: и пользуйтесь тегами редактора, неудобно код читать.
1
|
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
|
|
27.11.2015, 09:32 | 3 |
0x90h, не обязательно (я бы даже сказал вредно) делать db глобальной переменной: QSqlDatabase::database() достаточно, чтобы получить то же соединение.
0
|
676 / 452 / 159
Регистрация: 01.10.2015
Сообщений: 1,259
|
|
27.11.2015, 10:15 | 4 |
OneMoreGres,
а вы разницу между глобальными переменными и данными-членами, видимо, не очень осознаете
0
|
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
|
|
27.11.2015, 13:51 | 5 |
Не по теме: 0x90h, если отвечать в таком же стиле, то подключать заголовочные файлы в теле класса нельзя :p А именно это изображено в вас в примере, если не искать глубокий смысл (а человек, спрашивающий, как сделать переменную доступной для двух функций этого делать не будет). В любом случае, копировать экземпляр соединения с БД не имеет смысла, разве только для сокращения кода при первом вызове.
0
|
676 / 452 / 159
Регистрация: 01.10.2015
Сообщений: 1,259
|
|
27.11.2015, 13:55 | 6 |
В "теле класса"? А все-таки, где вы увидели глобальную переменную? Насчет целесообразности копирования соединения это к ТС
0
|
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
|
||||||
27.11.2015, 14:08 | 7 | |||||
По указанной выше причине делаю вывод, что объявление не внутри класса. Сочетание "хедер MainWindow" в данном случае конкретное место не указывает. З.Ы. На всякий случай продублирую:
0
|
676 / 452 / 159
Регистрация: 01.10.2015
Сообщений: 1,259
|
||||||
27.11.2015, 14:19 | 8 | |||||
OneMoreGres, в хедере класса подключили заголовочник QtSql и объявили db в private-разделе, никаких глобальных переменных тут в принципе нет.
Добавлено через 4 минуты
#include <QtSql> и QSqlDatabase db; . То, что я не расписал, с точностью до строчки, содержимое хедера, еще не основание делать выводы, подобные вашим о "глобальных" переменных и "вредности".Не по теме: Поисками "глубокого смысла" здесь занимаетесь как раз вы.
0
|
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
|
|
27.11.2015, 14:20 | 9 |
То, что вы подразумевали не совпадает с тем, что вы написали (учитывая уровень вопроса). Дальше развивать не буду. Считаете, что я не прав - ок, не возражаю.
0
|
27.11.2015, 14:20 | |
27.11.2015, 14:20 | |
Помогаю со студенческими работами здесь
9
Неправильно работает if в обработчике нажатия кнопки Как использовать переменную из другого в windows forms Как использовать событие нажатия кнопки на форме, в условии? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |