在下面的代码仍在运行时使用while-true循环(python)

在下面的代码仍在运行时使用while-true循环(python),python,while-loop,Python,While Loop,我正在制作一款名为: 闲置的笔(制造笔) 每1秒钟我就会得到一支奖金笔 我是如何得到一支笔奖金的 Import time While true make a pen() time.sleep(1) 但是我在while-true循环下有一些代码。 while-true循环下的代码就像按钮一样 升级钢笔或制作钢笔 那么如何使while true循环下的代码工作呢 这是我的游戏,我很高兴有人能复制它 还没准备好 import functools import tkinter impo

我正在制作一款名为:

闲置的笔(制造笔)

每1秒钟我就会得到一支奖金笔

我是如何得到一支笔奖金的

Import time
While true
    make a pen()
    time.sleep(1)
但是我在while-true循环下有一些代码。 while-true循环下的代码就像按钮一样 升级钢笔或制作钢笔 那么如何使while true循环下的代码工作呢

这是我的游戏,我很高兴有人能复制它 还没准备好

import functools
import tkinter
import tkinter.messagebox
import time
from random import seed
from random import randint

# eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee





window = tkinter.Tk()

window.title('Idle Pen')


def print_pen(number: int):
    return f"Pens: {number}"


class pencount:

    def __init__(self):
        self.pencount = 0
        self.text = tkinter.Text(height=1, width=30)
        self.text.insert("1.0", print_pen(0))
        self.text['state'] = 'disabled'
        self.text.pack()

    def changepencount(self, count):
        if self.pencount + count < 0:
            return
        self.pencount = self.pencount + count
        self.text['state'] = 'normal'
        self.text.delete("1.0", "end")
        self.text.insert("1.0", print_pen(self.pencount))
        self.text['state'] = 'disabled'
        self.text.pack()
        

pen = pencount()

changepenup = functools.partial(pen.changepencount, 1)
B = tkinter.Button(window, text="Make Pen", command=changepenup)


changependown = functools.partial(pen.changepencount, -100) 

A = tkinter.Button(window, text='Penmaker', command=changependown)

Q = tkinter.Button(window, text="Quit", command=window.destroy)

U = tkinter.Button


# eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

B.pack()
A.pack()
Q.pack()
    

window.mainloop()
导入工具
进口tkinter
导入tkinter.messagebox
导入时间
从随机输入种子
从随机导入randint
#EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
window=tkinter.Tk()
window.title(“空闲笔”)
def打印笔(编号:int):
返回f“Pens:{number}”
班数:
定义初始化(自):
self.pencount=0
self.text=tkinter.text(高度=1,宽度=30)
self.text.insert(“1.0”,打印笔(0))
self.text['state']='disabled'
self.text.pack()
def更改计数(自身、计数):
如果self.pencount+计数<0:
返回
self.pencount=self.pencount+计数
self.text['state']='normal'
self.text.delete(“1.0”,“结束”)
self.text.insert(“1.0”,打印笔(self.pencount))
self.text['state']='disabled'
self.text.pack()
pen=pencount()
changepenup=functools.partial(pen.changepencount,1)
B=tkinter.Button(窗口,text=“制笔”,命令=changepenup)
changependown=functools.partial(pen.changepcount,-100)
A=tkinter.Button(窗口,text='Penmaker',command=changependown)
Q=tkinter.Button(窗口,text=“退出”,命令=window.destroy)
U=tkinter.按钮
#EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
B.包装()
A.包装()
Q.pack()
window.mainloop()

您可以使用
线程
在单独的线程中运行循环,然后主线程可以运行
tkitner

或者您可以使用
tkinter
函数
after()
(而不是
while True
)来延迟运行函数,并且此函数应该再次使用
after()
来自行运行

import tkinter as tk
        
# --- functions ---

def update():
    global value

    value += 1
    
    text = f'make penny: {value}'
    print(text)
    label['text'] = text

    # run again after 1s (1000ms)
    root.after(1000, update)

# --- main ---

value = 0

root = tk.Tk()

label = tk.Label(root, text="make penny: 0")
label.pack()

button = tk.Button(root, text="Exit", command=root.destroy)
button.pack()

# run first time after 1s (1000ms)
root.after(1000, update)

root.mainloop()  

 

也许你应该在分开的
线程中运行
while True
,或者也许你应该使用
root.after(毫秒,函数)
定期运行代码(而不是使用
while True
)`这里有一些示例如何使用
after()
定期更新小部件上的时间。