Название: как сделать окно активным при открытии? Отправлено: nvek от Февраль 02, 2017, 12:36 когда я делаю
Код: aboutForm* tb = new aboutForm; нехорошо Название: Re: как сделать окно активным при открытии? Отправлено: gil9red от Февраль 02, 2017, 12:38 setFocus() ?
Название: Re: как сделать окно активным при открытии? Отправлено: Racheengel от Февраль 02, 2017, 12:59 raise()
Название: Re: как сделать окно активным при открытии? Отправлено: Day от Февраль 02, 2017, 16:21 activateWindow()
Название: Re: как сделать окно активным при открытии? Отправлено: nvek от Февраль 03, 2017, 07:26 не, не работает
Код: aboutForm::aboutForm(QWidget *parent) Название: Re: как сделать окно активным при открытии? Отправлено: Bepec от Февраль 03, 2017, 08:55 Пока оно не выйдет из конструктора, ни одно из предложенных тут решений не сработает :D
Так что костыльный но рабочий вариант - QTimer::SingleShot(500, this, SLOT(activateWindow())). Точнее пока не завершится конструктор окна как такового вообще нет. Оно даже размеров своих не знает. А вот после сработки конструктора - активируйте за милую душу :) Название: Re: как сделать окно активным при открытии? Отправлено: Пантер от Февраль 03, 2017, 09:23 Пока оно не выйдет из конструктора, ни одно из предложенных тут решений не сработает :D А можно событие показа перехватить и в нем активироваться.Так что костыльный но рабочий вариант - QTimer::SingleShot(500, this, SLOT(activateWindow())). Точнее пока не завершится конструктор окна как такового вообще нет. Оно даже размеров своих не знает. А вот после сработки конструктора - активируйте за милую душу :) Название: Re: как сделать окно активным при открытии? Отправлено: Day от Февраль 03, 2017, 09:35 Только вот непонятно, зачем в конструкторе activateWindow делать. Почему нельзя до или после show, например?
Название: Re: как сделать окно активным при открытии? Отправлено: nvek от Февраль 03, 2017, 09:40 Код: aboutForm::aboutForm(QWidget *parent) vs15 pro + Qt5 Название: Re: как сделать окно активным при открытии? Отправлено: Пантер от Февраль 03, 2017, 09:58 Неправильный подход. Положением и активностью должно не окно управлять, а тот, кто это окно вызывает. Покажи код вызова окна.
Название: Re: как сделать окно активным при открытии? Отправлено: nvek от Февраль 03, 2017, 10:03 он в первом посте
Код: aboutForm* tb = new aboutForm; Название: Re: как сделать окно активным при открытии? Отправлено: Пантер от Февраль 03, 2017, 10:36 tb->exec() сделай.
Название: Re: как сделать окно активным при открытии? Отправлено: nvek от Февраль 03, 2017, 10:44 баг какойто ???
я жмякаю ф1: окно вылезло(окно не активное) если жмякать много много раз, оно открывается сколько угодно раз Название: Re: как сделать окно активным при открытии? Отправлено: gil9red от Февраль 04, 2017, 19:22 баг какойто ??? если жмякать много много раз, оно открывается сколько угодно раз а нечего на каждый вызов создавать окно :) в поле класса напишите окно и вызывайте когда нужно будет или в функции на стеке создавать его и показывать через exec |