tkinter gui中的.exe未运行(pyinstaller)

2024-06-11 03:10:42 发布

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

阅读一些线程帮助我从tkinter gui创建了一个.exe

不幸的是,当我运行.exe文件时,什么也没有发生。当我在vsc中运行代码时,代码正常运行

按照在线说明,我执行了以下步骤

  1. 我打开命令提示符,用cd filelocation移动到我的文件位置
  2. 我运行了命令pyinstaller name-of-my-file.py(例如,还尝试了--onefile规范)
  3. 我得到了三个文件夹pycache、dist和build,在build中我找到了相应的.exe文件

如上所述,当我运行.exe文件时,不会发生任何事情。还尝试以管理员身份运行它

以防万一,我将在下面发布我的代码

感谢您的各种帮助

from tkinter import *
from tkinter import messagebox
import time
import datetime

def clicked(event=None):
    t = presentationDuration.get()
    try:
        t = float(t)
    except ValueError:
        messagebox.showerror(title='ValueError', message='The string is empty or there is no number entered!')  
        return
    nSpeaker = nextSpeaker.get()
    lbl.configure(text = nSpeaker, font = ("Arial Bold", 80))
    t = int(t*60)
    update(t)
    
def update(t):
    if(t >= 0):
        m,s = divmod(t, 60)
        left_Time.configure(text = m)
        right_Time.configure(text = s)
    if(t <= 60):
        nSpeaker = nextSpeaker.get()
        lbl.configure(text = nSpeaker, bg = 'red', font = ("Arial Bold", 80))
 
    window.after(1000, update, t-1)

window = Tk()
window.title("presenters Toolkit")
 
lbl_duration = Label(window, text = "duration [mins]")
lbl_duration.grid(column = 0, row = 0)
 
presentationDuration = Entry(window, width = 10)
presentationDuration.grid(column = 1, row = 0)
 
lbl_speaker = Label(window, text = "next Speaker")
lbl_speaker.grid(column = 2, row = 0)
 
nextSpeaker = Entry(window, width = 30)
nextSpeaker.grid(column = 3, row = 0)
 
lbl = Label(window, text = "", font = ("Arial Bold", 50))
lbl.grid(column = 1, row = 1)
 
btn = Button(window, text = "start", command = clicked)
btn.grid(column = 1, row = 3)
 
left_Time = Label(window, text ="--", font = ("Arial Bold", 80))
left_Time.grid(column = 0, row = 4)
 
mid_Time = Label(window, text = ":", font = ("Arial Bold", 80))
mid_Time.grid(column = 1, row = 4)
 
right_Time = Label(window, text = "--", font = ("Arial Bold", 80))
right_Time.grid(column = 2, row = 4)
 
window.mainloop()

Tags: 文件textimporttimecolumnwindowexelabel
1条回答
网友
1楼 · 发布于 2024-06-11 03:10:42

您需要将函数的代码移到上面,以便它们的代码在导入之后继续运行。另外,当在t = float(presentationDuration.get ())行中运行代码时,我发现了一个与t = float(presentationDuration.get())中的what if empty相关的错误,单击按钮ValueError: could not convert string to float时会引发异常。所以我建议你处理这种情况。下面是我将看到的clicked函数的代码。对不起,我的英语不是我的母语

def clicked(event=None):
    t = presentationDuration.get()
    try:
        t = float(t)
    except ValueError:
        messagebox.showerror(title='ValueError', message='The string is empty or there is no number entered!')  # also you should have such line in your code `from tkinter import messagebox`
        return
    nSpeaker = nextSpeaker.get()
    lbl.configure(text = nSpeaker, font = ("Arial Bold", 80))
    t = int(t*60)
    update(t)

相关问题 更多 >