Здравствуйте!
Неожиданное явление в программе на Qt - в главной программе
установлен фильтр, но дочернее окон всё равно перехватывает
события и отобрать от него фокус не удаётся. Это в AStra Linux 1.4.
К сожалению, я столкнулся с неожиданным поведением системы
или программы. Именно, в программе создаётся производный
класс от QFrame, ему приписываются флаги, что он окно,
что у него нет рамки, что он прозрачный, а также
устанавливается атрибут, что он не получает фокус.
Это делается и при его создании и внутри него самого.
Но похоже, что последний атрибут не срабатывает.
В главной программе также делаются попытки лишить этот
объект фокуса и перевести его на себя, в ней установлен
фильтр командой installEventFilter(), но, когда этот объект
делается видимым командой show(), он захватывает все события
от клавиатуры, а фильтр, установленный в главной программе,
не получает ничего. Т.е. если создать в нём свою Event(),
то видно, что события получает она.
Хотелось бы знать, это нормальное поведение или нет?
Если нет, то что я упустил?
Это не критично, т.к. я собирался посылать эти события дочерней
программе из главной, а раз она сама их принимает, то это даже
удобнее, но это в моём случае, а вообще это нежелательно.
В книге я видел, как можно посылать события разным виджетам,
но не помню, годится это для моего случая или нет.
Пётр.