при изменении размеров окна на место кнопки становиться scale
Написал простой код, который изменяет размер окна, а потом возвращает его обратно при повторном нажатии на кнопку.
Но когда я добавил scale, то при нажатии на кнопку размеры менялись на размеры кнопки и по идеи при повторном нажатии должно было окно возвращаться обратно, но на место кнопки становился scale, вот код:
from tkinter import *
import tkinter as tk
class Demo:
def __init__(self, root):
self.flag = True
self.root = root
b = Button(root, text='close/open', command=lambda: self.clop(self.flag))
b.place(x=0, y=0)
def clop(self, flag):
if self.flag:
self.root.geometry("70x26")
else:
self.root.geometry("340x500+50+50")
self.flag = not self.flag
def load():
print ("test")
root = tk.Tk()
root.geometry("340x500+50+50")
root.wm_attributes("-topmost", 1)
root.resizable(width=False, height=False)
root.overrideredirect(1)
b = Button(root, text='load settings', command=lambda: load())
b.place(x=260, y=470)
app = Demo(root)
def on_scroll(val):
print(val)
scale = tk.Scale(root, from_=0, to=60, command=on_scroll, orient="horizontal")
scale.pack()
root.mainloop()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
попробуйте так:
from tkinter import *
import tkinter as tk
class Demo:
def __init__(self, root):
self.flag = True
self.root = root
b = Button(root, text='close/open', command=lambda: self.clop(self.flag))
b.place(x=0, y=0)
def clop(self, flag):
if self.flag:
self.root.geometry("70x26")
else:
self.root.geometry("340x500+50+50")
self.flag = not self.flag
def load():
print ("test")
def on_scroll(val): # +++
print(val) # +++
root = tk.Tk()
root.geometry("340x500+50+50")
root.wm_attributes("-topmost", 1)
root.resizable(width=False, height=False)
root.overrideredirect(1)
b = Button(root, text='load settings', command=lambda: load())
b.place(x=260, y=470)
scale = tk.Scale(root, from_=0, to=60, command=on_scroll, orient="horizontal") # +++
scale.pack() # +++
app = Demo(root)
#def on_scroll(val):
# print(val)
#scale = tk.Scale(root, from_=0, to=60, command=on_scroll, orient="horizontal")
#scale.pack()
root.mainloop()
