tkinter 转换为 exe 打不开

我正在使用 tkinter 制作一些简单的程序,它允许我更改我的计算机分辨率。它认为 python IDLE 直接运行时运行良好,但是当我使用 auto-py-to-exe 和 py-installer 将它转换为 EXE 时,tkinter 窗口不会打开并且命令提示符会暂时打开直到关闭本身。起初我以为这是我的代码或模块,因为我的代码使用 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()



MYYA
浏览 174回答 1
1回答

交互式爱情

距离我上次使用它已经有一段时间了。main_window.mainloop()or[root tk].mainloop()这应该放在代码的底部,就在 main() 的下面。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python