求助:关于python转exe文件运行时tkinter发生的问题

 前端窗口模仿下篇文章所写: 

qtkinter库使用技巧之监听窗口变化自动刷新组件位置大小_tkinter窗口 改变大小 布局自动调整-CSDN博客

        def setupUi(self):
            def predict_video():
                self.remove_folder(self.predict_dir)
                model = YOLO(os.getcwd() + '/best.pt')
                model.predict(source=self.video_dir, save=True, save_conf=True, save_txt=True, name='output',max_det=1, classes=1)
            # model(source=self.video_dir, save=True, save_conf=True, save_txt=True, name='output', max_det=1, classes=1)
            def run_com():
                Thread(target=predict_video).start()
            elf.btn1 = tk.Button(text="Detect", bd=0, bg='black', fg='white',command=run_com)
            self.btn1.place(relx=0.29, rely=0.05, y=200, relwidth=0.48, height=30)

直接运行.py文件时正常运行(未加Thread时也能正常运行),当转为exe文件时,按下btn1时界面会卡住重新生成一个相同的前端界面,一直会反复生成


当关闭后面新生成的前端时,前一个前端界面才会开始运行predict函数,正常运行结束。当重新点击RUN时,则又会新生成一个前端。

 

我尝试加上Thread,或是使用if newWin == None来判断,结果都是一样。

使用predict识别视频和图片结果也是一样,必须把新生成的前端界面关闭,前一个才能正常执行。

没有predict函数的代码都能正常执行。

尝试将predict函数放进

if __name__ == '__main__':
    top = MyTk()
    def predict_video():
        top.remove_folder(top.predict_dir)
        model = YOLO(os.getcwd() + '/best.pt')
        model.predict(source=top.video_dir, save=True, save_conf=True, save_txt=True, name='output', max_det=1,
                      classes=1)
        # model(source=self.video_dir, save=True, save_conf=True, save_txt=True, name='output', max_det=1, classes=1)
    def run_com():
        Thread(target=predict_video).start()
    top.btn1.configure(command=run_com)
    # time.sleep(5)
    top.mainloop()

同样会发生这个问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值