为什么我不能用tkinter grid方法放置这个类?

2024-03-29 08:27:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个现有的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}$

我错过了什么?在


Tags: importself程序inittkintermyclassframetk
2条回答

请不要在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中小部件的父级,而不是{}。在

相关问题 更多 >