0 / 0 / 0
Регистрация: 20.01.2019
Сообщений: 12
|
|||||||||||
1 | |||||||||||
Двойное открытие QDialog17.07.2019, 12:16. Показов 906. Ответов 6
Добрый день, столкнулся с проблемой. Когда в списке двойным щелчком открываю изображение создается окно класса photoReader (унаследован от QDialog). После его закрытия сразу создается такое же окно и после закрытия второго окна возвращается MainWindow.
0
|
17.07.2019, 12:16 | |
Ответы с готовыми решениями:
6
Разница между QDialog::exec() и QDialog::Open() Закрытие QDialog QDialog close QDialog расположение |
284 / 173 / 62
Регистрация: 13.03.2019
Сообщений: 419
|
|
17.07.2019, 15:47 | 2 |
Может, ты дважды вызвал connect() для соединения on_currentFolder_doubleClicked(). Есть вариант, что у тебя одно соединение создаётся автоматически, а второе ты делаешь в явном виде.
1
|
0 / 0 / 0
Регистрация: 20.01.2019
Сообщений: 12
|
|
17.07.2019, 16:17 [ТС] | 3 |
Анна по жизни, перепроверил, ни где в коде явно не вызываю connect() для on_currentFolder_doubleClicked().
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
17.07.2019, 16:28 | 4 |
Это не с кодом связано, а с называнием слота. В вызове
QMetaObject::connectSlotsByName(***) , который генерируется для любой сгенерированной из ui формы, слоты с названиями, правильным образом совпадающими с называниями виджетов и сигналов, будут автоматически подключены к ним. Простейшее решение - не использовать в начале слота приставку on_ , а например ON_ или slot_
0
|
278 / 87 / 37
Регистрация: 10.06.2015
Сообщений: 261
|
|
17.07.2019, 17:22 | 5 |
Ну, если я правильно понял, только так у него слот и подключен (по совпадающему имени). Не два же раза он автоматически подсоединился.
0
|
284 / 173 / 62
Регистрация: 13.03.2019
Сообщений: 419
|
|
17.07.2019, 20:06 | 6 |
ещё вариант - поставить у вьювера в свойстве editTriggers() флажок DoubleClicked.
Добавлено через 36 минут Не то. Добавлено через 2 минуты Самое простое - посмотреть отладчиком, откуда попадаешь в создание диалога.
0
|
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 828
|
|
19.07.2019, 12:42 | 7 |
TRam_ все правильно сказал. Сам в начале карьеры на эти грабли наступал. Отучился именовать функции снейк-кейсом - проблема двойного вызова ушла.
0
|
19.07.2019, 12:42 | |
19.07.2019, 12:42 | |
Помогаю со студенческими работами здесь
7
Передача сообщения в QDialog Вызов QDialog::Accepted Взаимодействие нескольких QDialog QDialog, QApplication и exec() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |