我有一个现有的python3程序,我没有任何面向对象的技术编写它(它是我的第一个Python程序)。我该清理了,我在课堂上遇到了让tkinter工作的问题。在
下面是一个简化的例子。它只是试图放置一个ttk.条目小部件,它继承自ttk.框架公司名称:
import tkinter as tk
from tkinter import ttk
class MyClass(ttk.Frame):
def __init__(self, parent):
self.frame = ttk.Frame(parent)
# Entry widget
self.entValue = ttk.Entry(self.frame)
self.entValue.grid(column=0, row=0)
# tkinter init
root = tk.Tk()
# Make the class instance and place it
test = MyClass(root)
test.grid(column=0, row=0)
它给出了以下错误:
^{pr2}$我错过了什么?在
请不要在Tkinter中使用网格方法。这是最糟糕的方法。 请使用Place()方法设计GUI。它很容易实现。在
更多关于Place()的检查细节,请参阅本文how to i position buttons in tkinter?
place方法不像grid()那样复杂。查看文章以使您的GUI更好地使用Python。在
你的帧尚未初始化。将
super().__init__(parent)
添加到MyClass.__init__
方法的顶部,以允许ttk初始化帧。在另外,我认为你可以摆脱}。在
self.frame
。将self
设置为MyClass
中小部件的父级,而不是{相关问题 更多 >
编程相关推荐