gpt4 book ai didi

python - 在单独的类中创建一个 tkinter 按钮

转载 作者:行者123 更新时间:2023-11-30 23:11:09 24 4
gpt4 key购买 nike

我正在使用 Python 3.4 制作我的第一个真正的 Tkinter 应用程序。我用 Tkinter 做了一些更简单的事情,但没有比这更高级的了。

我的程序的一部分是有一个窗口,有两个按钮,每一侧一个,中间有一张图片。这些按钮将在图片中向左和向右导航。

我希望能够通过单独的类 NavButton 创建按钮,以便我的代码更有组织性并且更易于阅读,就像问题 Best way to structure a tkinter application 中的这张图片一样。 .

enter image description here

本质上我想说的是:

self.left_button = NavButton(self, ">")

或类似的东西来创建

class NavButton():

对象。

然后打包

self.left_button.pack()

我正在努力解决如何在不同的类中实际设置按钮的问题。它一直显示“AttributeError:‘NavButton’对象没有属性‘tk’”'

这是迄今为止我的代码:

import tkinter as tk

class MainWindow(tk.Frame):
def __init__(self, master):
frame = tk.Frame(master)
frame.pack(fill="both", expand = True)

self.left_button = NavButton(frame, ">")
self.left_button.pack(side='left', fill='y')

class NavButton(tk.Frame):
def __init__(self, master, icon):
self.nav_button = tk.Button(master, text=icon, width=25)


root = tk.Tk()
root.title("Viewer")
root.geometry('1000x600')
app = MainWindow(root)
root.mainloop()

我的问题可能来自于我创建按钮的方式吗?

tk.Frame.__init__(self, parent, ...)

VS

self.frame = tk.Frame(parent)

简而言之,如何为我的按钮使用单独的类?

最佳答案

您的NavButton是一个框架。我会把它做成一个按钮,这就是你想要的,不是吗?更改此:

class NavButton(Tk.Frame):

class NavButton(Tk.Button):

此外,您应该调用父初始值设定项:

super().__init__(self, **options)

关于python - 在单独的类中创建一个 tkinter 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com