Найти - Пользователи
Полная версия: перетаскивание окна
Начало » GUI » перетаскивание окна
1
Gogantov
Есть ли в tkinter возможность перетаскивать окно не за область в которой кнопки “закрыть”, “минимизировать”, а за область в которой расположены виджеты? В примере это будет Label, область красного цвета. И как это реализовать?
 # -*- coding: UTF-8 -*-
import tkinter
root = tkinter.Tk()
root.geometry('100x100')
label = tkinter.Label(root, text='', bg='red')
label.grid(row=0, column=0, sticky='we')
root.columnconfigure(0, weight=1)
root.mainloop()
Gogantov
Вопрос снят, сам нашел.
 # -*- coding: UTF-8 -*-
import tkinter
class Window(object):
    def __init__(self):
        self.root = tkinter.Tk()
    def clickwin(self, event):
        self._offsetx = event.x
        self._offsety = event.y
    def dragwin(self, event):
        x = self.root.winfo_pointerx() - self._offsetx
        y = self.root.winfo_pointery() - self._offsety
        self.root.geometry('+{x}+{y}'.format(x=x,y=y))
    def run(self):
        self.root.geometry('100x100')
        self.root.overrideredirect(True)
        self.label = tkinter.Label(self.root, text='', bg='red')
        self.label.grid(row=0, column=0, sticky='we')
        self.label.bind('<Button-1>', self.clickwin)
        self.label.bind('<B1-Motion>', self.dragwin)
        self.root.columnconfigure(0, weight=1)
        self.root.mainloop()
Window().run()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB