Название: Запрет на повторное открытие Отправлено: QPeter от Февраль 25, 2014, 23:45 Ситуация следующая, если окно с кнопкой, при нажатии на которую открывается другое окно и как лучше реализовать запрет на повторное открытие, при нажатии на кнопку несколько раз?
Суть вопроса в том как правильно описать следующее условие: Код: if(форма открыта){ Название: Re: Запрет на повторное открытие Отправлено: kambala от Февраль 26, 2014, 01:07 можно булевый флажок завести, а можно сохранять указатель на виджет, который показываешь, и в слоте нажатия кнопки проверять не равен ли указатель нулю. указатель сделать QPointer и показываемому виджету выставить атрибут Qt::WA_DeleteOnClose
Название: Re: Запрет на повторное открытие Отправлено: Old от Февраль 26, 2014, 06:04 и наверное лучше не показывать диалоги с предупреждениями, а дизаблить саму кнопку.
Название: Re: Запрет на повторное открытие Отправлено: QPeter от Февраль 26, 2014, 13:54 А как нибудь вот так реализовать нельзя (имя формы spr)
Код: void Widget::on_pushButton_3_clicked() Название: Re: Запрет на повторное открытие Отправлено: OKTA от Февраль 26, 2014, 14:09 Судя по написанному, ставите флаг в Widget типа
Код: bool isOpen = false; Код: if(isOpen) {...} else {isOpen = true; ...} Название: Re: Запрет на повторное открытие Отправлено: kambala от Февраль 26, 2014, 14:18 new spr(this) создает новый объект, а тебе надо обращаться к существующему, поэтому я и говорил завести указатель
Название: Re: Запрет на повторное открытие Отправлено: Igors от Февраль 26, 2014, 14:40 И дополнительно меняете флаг, когда форма закроется. Проще уж нечего придумать, если хочется просто. А если кто-то еще его удалит? Вариант с QPointer самый четкий. Плюс проверка если указатель живой но окно invisibleНазвание: Re: Запрет на повторное открытие Отправлено: OKTA от Февраль 26, 2014, 14:46 agree
Название: Re: Запрет на повторное открытие Отправлено: QPeter от Февраль 26, 2014, 23:36 kambala а вам не сложно дописать код, самому как то не разобраться,.( ???
Хотя бы примерно Код: void Widget::on_pushButton_3_clicked() Название: Re: Запрет на повторное открытие Отправлено: kambala от Февраль 26, 2014, 23:47 Код
Название: Re: Запрет на повторное открытие Отправлено: QPeter от Февраль 27, 2014, 00:19 kambala спасибо большое. Примерно разобрался)
:) |