gpt4 book ai didi

Python 类转换

转载 作者:行者123 更新时间:2023-12-01 08:55:00 25 4
gpt4 key购买 nike

我需要创建一个程序,它有两个按钮和一个显示计数器当前值的标签。带有文本 +1 的一个按钮应向计数器加 1,而另一个标记为 -1 的按钮应从中减 1(没有最小值和最大值)。计数器应从零开始。

在为每个按钮设计功能时,我们需要获取当前值,根据按钮按下情况更改该值,然后设置新值。

提示:如上面的按钮示例所示,您将需要两个全局变量:一个用于当前计数,另一个用于标签小部件。

我工作了,经过多次尝试和错误,我得到了它的工作原理如下:

from tkinter import *
from tkinter.ttk import *

def plus_one():
"""Increments counter by 1 """
global click_counter, counter_label

click_counter += 1
counter_label["text"] = str(click_counter)

def minus_one():
"""Reduces counter value by 1"""
global click_counter, counter_label

click_counter -= 1
counter_label["text"] = str(click_counter)

def main():
"""Program"""
global click_counter, counter_label
click_counter = 0
window = Tk()

counter_label = Label(window, text=str(click_counter))
counter_label.grid(row=0, column=0)

plus_one_button = Button(window, text="+1", command=plus_one)
plus_one_button.grid(row=2, column=0)
minus_one_button = Button(window, text="-1", command=minus_one)
minus_one_button.grid(row=2, column=1)

window.mainloop()

main()

我想知道是否可以将 GUI 代码封装到一个 Countergui 类中,如下所示:

from tkinter import *
from tkinter.ttk import *

# Write your code here

def main():
"""Set up the GUI and run it"""
window = Tk()
counter_gui = CounterGui(window)
window.mainloop()

main()

附加信息:重新创建程序,但将 GUI 代码封装在 CounterGui 类中。该程序应具有与问题 4 中的程序相同的功能:该程序有两个按钮和一个显示计数器当前值的标签。一个带有文本 +1 的按钮应该向计数器添加 1,而另一个标记为 -1 的按钮应该从中减去 1。计数器应从零开始。

最佳答案

最好为计数器创建一个类,此外,如果可以避免,最好不要创建全局

class Counter(object):
def __init__(self, start=0):
self.count = start

def increment(self):
self.count += 1

def decrement(self):
self.count -= 1

最好不要创建混合使用类 - 该类将负责处理值的存储、递增和递减。

然后,您可以创建一个单独的类来绘制按钮和基本组件界面,并向其传递 Counter 类的实例

祝你好运

关于Python 类转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52829408/

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