Как отключить движение мыши () на панели задач Windows, пока я перетаскиваю свое безрамочное окно? - PullRequest
1 голос
/ 29 марта 2019

Я работаю над безрамным окном для современного графического интерфейса с Tkinter.Я реализовал функцию перетаскивания окна, но она также работает, когда окно находится за панелью задач, это большая проблема, когда я пытаюсь восстановить свое окно из-за панели задач.Поэтому я хочу отключить функцию перетаскивания, когда мышь достигает границы панели задач.

  def drag(event):
      act = str(event.type)
      if act == 'Motion':
            global _app
            #_app is a reference to root in other py file
            t = _app.geometry().split('+')[1:]
            xval = int(t[0])
            yval = int(t[1])
            _app.geometry('+'+
                          str(xval + event.x -400)+
                          '+'+str(yval + event.y -20))
            #window size is fixed i.e. 800x480

1 Ответ

1 голос
/ 19 июля 2019

Когда вы делаете окно без полей с помощью метода overrideredirect (), тогда этот метод говорит диспетчеру окон операционной системы просто игнорировать окно GUI вашего tkinter.

Когда вы делаете это, менеджер окон теперь не несет никакой ответственности за ваше окно графического интерфейса. Каждая задача, такая как перетаскивание окна, минимизация и максимизация, событие закрытия и т. Д., Должна выполняться вами вручную.

Теперь, чтобы решить проблему перетаскивания на панели задач Windows, есть два способа.

1) Как я уже говорил ранее, все делайте вручную, затем вам нужно вручную найти панель задач Windows и затем изменить функцию перетаскивания, чтобы предотвратить движение мыши за границами панели задач.

2) Самый простой способ - сделать окно GUI окном верхнего уровня, с помощью которого вы сможете перетаскивать окно на панель задач без каких-либо проблем со скрытием окон.

Чтобы сделать верхний уровень окна, вам нужно просто установить Атрибут, т.е. topmost = True.

    root.attributes('-topmost',1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...