![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
bigory |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем доброе время суток!
Я пишу программу, где должна быть кнопка полной блокировки. Нажав на эту кнопку, все кнопки, меню, управляющие кнопки,границы окна перестают слушаться, только одна кнопка должна отвечать и работать процессы, происходящие в программе. При нажатии на эту кнопку, окно запрашивает пароль, если он введен правильно, то все окно разблокировывается. Мне удалось сделать такую кнопку, но она блокирует только меню, кнопки и запрещает закрытие программы. Подскажите как можно при установке значение False, запретить сворачивания окна в панель, разворачивание окна на полный экран или сворачивание в окно, изменять размеры окна вручную, перетаскивать окно по экрану. Какие у них функции и как ими работать? Если кому интересно зачем мне это, то скажу в кратце. Представьте что это администраторская программка и за ним сидит админ. Админ это же тоже человек, ему нужно куда-то выйти или поговорить с кем-то, но не хочет чтобы кто-то работал с его программой. Он просто нажимает на кнопку заблокировать и уходит, а как придет, нажимает разблокировать и вводит пароль |
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
если бы это было под виндой, то я бы просто создал локальную петлю обработки сообщений системы. Только WM_PAINT бы пропускал наружу, чтобы не стёрлись все остальные окна приложения. Как это провернуть под Qt- не знаю, не разбирался, но наверняка тоже можно
вроде void QObject::installEventFilter ( QObject * filterObj ) Сообщение отредактировал Алексей1153 - 28.10.2010, 0:11 |
|
|
bigory |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Может я не совсем коректно пояснил чего хочу..
Возьмем программу, которая закачивает данные с инета. Сидеть и следить чтобы никто не подошел и не вырубил его слишком нудно. Есть кнопочка, которая ограничит на время функционал, то есть программа не будет слушаться пользователя: не будет закрываться при нажатии на крестик, не реагируют никакие кнопки, окно не хочет сворачиваться и перемещаться, но сама пробграмма продолжает закачивать данные. Вот приходит тот кто поставил ее на блокировку, нажимает на определенную кнопку, вводит пароль, вот после этого программа отвечает на все запросы пользователя. Например, изщбежать закрытия программы, мы просто пишем
При этом что ни вызывай, что ни нажимай в прогроамме, прога не закроется. Можжно только через диспетчер задач. Вот что-то типа этого хотел бы узнать как остальное блокировать |
|
|
ernie |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 13.5.2010 Из: Irkutsk Пользователь №: 1712 Спасибо сказали: 11 раз(а) Репутация: ![]() ![]() ![]() |
Ну а если выставить fixed size и просто убрать панель с крестиком,сворачиванием/разворачиванием?
|
|
|
Алексей1153 |
![]()
Сообщение
#5
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
bigory,
1) можно сделать как я показал. Это более надёжно 2) как уже готовый вариант пункта №1: можно просто модальное окно вывести, которое закроется только при вводе пароля в его окошко. А чтобы глаза не мозолило - по таймеру делать прозрачным или невидимым. При получении фокуса (щёлкнули по основному окну или по модальному диалогу) невидимость убирать Сообщение отредактировал Алексей1153 - 28.10.2010, 6:24 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#9
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
прикольно, у меня в справке креатора совсем другой прототип
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
прикольно, у меня в справке креатора совсем другой прототип не путай две функции, они работают в паре:void QObject::installEventFilter ( QObject * filterObj ) - устанавливает фильтр соытий на какой-либо объект bool QObject::eventFilter ( QObject * watched, QEvent * event ) [virtual] - сам фильтр |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.7.2025, 22:46 |