嗨,伙計們,我正在嘗試添加一個每次單擊按鈕時都會增加 0.2 的函式。我能夠用 IntVar (1, 2, 3 ...) 來做到這一點,但現在我對此很愚蠢。它應該同時執行 1、2、3 等步驟和 0.2、0.4、0.6 等步驟。
from tkinter import *
from tkinter.ttk import *
root = tkinter.Tk()
root.geometry("200x200")
root.minsize("300", "200")
root.maxsize("400", "300")
root.title("Test")
counter = tkinter.IntVar()
fish = tkinter.StringVar()
fished = 0
def onClick(event=None):
fish.set(str(fished 0.2))
counter.set(counter.get() 1)
print(counter.get())
num1 = counter.get() * 0.2
print(num1)
messagevar = Message(root, textvariable = fish)
messagevar.config(bg="lightgreen")
messagevar.pack()
tkinter.Label(root, textvariable=counter).pack()
tkinter.Button(root, text="increase", command=onClick, fg="black", bg = "white").pack()
root.mainloop()```
uj5u.com熱心網友回復:
您可以像使用整數計數器一樣增加字串計數器:
import tkinter
def on_click():
fish.set(f'{float(fish.get()) 0.2:.1f}')
counter.set(counter.get() 1)
root = tkinter.Tk()
root.geometry("200x200")
counter = tkinter.IntVar()
fish = tkinter.StringVar(value='0')
message_var = tkinter.Message(root, textvariable=fish, bg="lightgreen")
message_var.pack()
tkinter.Label(root, textvariable=counter).pack()
tkinter.Button(root, text="increase", command=on_click, fg="black", bg="white").pack()
root.mainloop()
只需獲取值,將其轉換為浮點數,添加 .2,并由于浮點精度而對其進行格式化。
您還可以在初始化物件時配置背景,并且您的給定代碼實際上不會運行,因為名稱tkinter未定義。
另外:
我強烈建議*在匯入某些內容時不要使用通配符 ( ),您應該匯入您需要的內容,例如from module import Class1, func_1, var_2等等或匯入整個模塊:import module然后您也可以使用別名:import module as md或類似的東西,重點是不要除非您確實知道自己在做什么,否則不要匯入所有內容;名稱沖突是問題。
我強烈建議遵循PEP 8 - Python 代碼風格指南。函式名和變數名應該在snake_case,類名應該在CapitalCase. 沒有足夠的空間周圍=,如果它被用作關鍵字引數的一部分,( func(arg='value')),但周圍有空間,=如果是用于分配的值(variable = 'some value')。在運算子周圍留出空間( -/等value = x y:(此處除外value = x y))。在函式和類宣告周圍有兩個空行。
uj5u.com熱心網友回復:
根據定義,整數不存盤小數位;你必須使用浮點型。您可以使用DoubleVar()代替IntVar(). 但是,您可以在嘗試時使用變數。
from tkinter import *
from tkinter.ttk import *
root = tkinter.Tk()
root.geometry("200x200")
root.minsize("300", "200")
root.maxsize("400", "300")
root.title("Test")
counter = tkinter.DoubleVar()
fish = tkinter.StringVar()
fished = 0
def onClick(event=None):
global fished
fished = 0.2 # equivalent to fished = fished 0.2
fish.set(str(fished))
counter.set(counter.get() 0.2)
print(counter.get())
messagevar = Message(root, textvariable = fish)
messagevar.config(bg="lightgreen")
messagevar.pack()
tkinter.Label(root, textvariable=counter).pack()
tkinter.Button(root, text="increase", command=onClick, fg="black", bg = "white").pack()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/338686.html
