python - 如何使框架无法调整大小
问题描述
我的框架中有一个“添加任务”按钮,它创建了一个新的文本小部件来输入一些文本,并添加了文本小部件,框架保持垂直扩展
我试过使用 resizable(False, False),它显示 AttributeError: '_tkinter.tkapp' object has no attribute 'resizable'
class Container(tk.Frame):
def __init__(self, parent = None, priority = 3, bg = 'bisque'):
tk.Frame.__init__(self, parent)
self.f = tk.Frame(parent)
self.f.configure(bg = bg)
self.f.pack(fill = 'both', expand = True)
self.tk.resizable(False, False)
if __name__ == '__main__':
window = tk.Tk()
window.geometry('300x200-400+75')
window.minsize(300, 600)
p1 = Container(window, priority = 1)
p2 = Container(window, bg = 'blue', priority = 2)
p3 = Container(window, bg = 'red', priority = 3)
window.mainloop()
解决方案
您不能self.tk.resizable(False, False)
用于框架小部件,它仅用于主窗口。
解决方案
如果您只想在将小部件添加到框架时使框架不可调整大小,请使用self.propagate(0)
这不会让子小部件接管父小部件的大小。
但是,如果您希望主窗口不调整大小,请使用window.resizable(False, False)
代码
import tkinter as tk
class Container(tk.Frame):
def __init__(self, parent = None, priority = 3, bg = 'bisque'):
tk.Frame.__init__(self, parent)
self.f = tk.Frame(parent)
self.f.configure(bg = bg)
self.propagate(0)
self.f.pack(fill = 'both', expand = True)
if __name__ == '__main__':
window = tk.Tk()
window.geometry('300x200+400+75')
window.minsize(300, 600)
# Use this if you don't want the main window to be resizable.
# window.resizable(False, False)
p1 = Container(window, priority = 1)
p2 = Container(window, bg = 'blue', priority = 2)
p3 = Container(window, bg = 'red', priority = 3)
window.mainloop()
推荐阅读
- r - 高度缩放到计数的ggridges
- java - 我坚持做 remove()
- python - 如何将一个列表与一个句子进行匹配,并带上带有id - words 格式的单词列表
- android - 使用 Jetpack 的 Android 导航组件销毁/重新创建的片段
- asp.net-mvc - 多个页面的 MVC 5 属性路由错误
- azure - 使用持久函数中的重试选项,最后一次尝试后会发生什么?
- php - 如何使用 twilio 和 windows scheduler 发送短信?
- generics - 应用前选择函数引用:类型推断问题
- transactions - Sparql 交易
- python - 如何在图像上叠加蒙版以及如何保留与蒙版值对应的二维点?