簡體   English   中英

tkinter 轉換為 exe 打不開

[英]tkinter converted to exe not opening

我正在使用 tkinter 制作一些簡單的程序,它允許我更改計算機分辨率。 它在直接運行時運行良好,它認為 python IDLE,但是當我使用 auto-py-to-exe 和 py-installer 將其轉換為 EXE 時,tkinter window 會立即打開,直到命令提示符打開並關閉本身。 起初我以為這是我的代碼或模塊,因為我的代碼使用 winapi,但我在另一個 tkinter 上嘗試了它,但這也無法打開轉換后的 tkinter exe。

import win32api
import win32con
import pywintypes
from tkinter import *

def quit():
    main_window.destroy()

def main():
    global option
    option = StringVar()
    
    main_window.geometry("300x200")
    main_window.title("change resolution")

    selected_label = Label(main_window, textvariable = option, font = 'Arial 15 bold')
    selected_label.grid(column=0, row=0)

    choose_label = Label(main_window, text = "Please choose an option")
    choose_label.grid(column=0, row=1)

    defaultbutton = Button(main_window, text= 'default', command = default)
    defaultbutton.grid(column=0, row=2)
    teamviewerbutton = Button(main_window, text= 'teamviewer', command = teamviewer)
    teamviewerbutton.grid(column=1, row=2)

    quitbutton = Button(main_window, text = 'quit', command = quit)
    quitbutton.grid(column=1, row=0)

    
    

def default():
    option.set("default")
    
    devmode = pywintypes.DEVMODEType()

    devmode.PelsWidth = 3440
    devmode.PelsHeight = 1440

    devmode.Fields = win32con.DM_PELSWIDTH | win32con.DM_PELSHEIGHT

    win32api.ChangeDisplaySettings(devmode, 0)


def teamviewer():
    option.set("teamviwer")

    devmode = pywintypes.DEVMODEType()

    devmode.PelsWidth = 1920
    devmode.PelsHeight = 1080
    devmode.Scale = 2

    devmode.Fields = win32con.DM_PELSWIDTH | win32con.DM_PELSHEIGHT

    win32api.ChangeDisplaySettings(devmode, 0)

main_window = Tk()


main()

感謝 Rahul 的回答,答案很簡單,距離我上次使用它已經有一段時間了。

main_window.mainloop()

or

[root tk].mainloop()

這應該放在代碼的底部,就在 main() 的下方。

這個問題解決了

要運行它,您需要在 py 啟動器中正確運行。

但問題是 py 啟動器僅在需要獲取用戶輸入時運行(如 a=input()),否則它會嘗試運行代碼並關閉。

為避免這種情況,您需要設置一個空白的用戶輸入,例如某個變量 a=input("")。

如果您設置它,您的代碼將正確運行。

注意:只有在 cmd 中使用“pyinstaller 文件名”安裝它時,它才能更高效、更快速地運行

暫無
暫無

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

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