簡體   English   中英

來自 tkinter gui 的 .exe 無法運行(pyinstaller)

[英].exe from tkinter gui does not run (pyinstaller)

閱讀一些線程幫助我從我的 tkinter gui 創建 a.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()

您需要移動上面的函數代碼,以便它們的代碼例如在導入之后。 此外,當在t = float(presentationDuration.get ())行中運行代碼時,我發現一個錯誤與如果在t = float(presentationDuration.get())為空,單擊按鈕時拋出異常ValueError: could not convert string to float 所以我建議你處理這種情況。 下面是我會看到clicked的 function 的代碼。 對不起,我的英語不是我的母語。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM