python 一个Tk()函数出现两个窗口的问题所在及解决办法

 python Tk()函数出现两个窗口的问题


在某个项目中有三个python文件:main.py和UI.py,Message.py

main.py:

from UI import UI
import tkinter
if __name__ == '__main__' :
    ui=UI()

UI.py:

from tkinter import *
import tkinter.font as tkFont


class UI():
    list = Message()
    def __init__(self):
        print("构造函数")
        ui = Tk()
        ui.mainloop()

Message.py:

class Messages():
    message_list=[]

    def __init__(self):
        return

    def add(self,messa):
        self.message_list.append(messa)

    def remove(self,index):
        if index<len(self.message_list):
            del self.message_list[index]

    def get(self,index):
       if index<len(self.message_list):
           return self.message_list[index]
       else :
           return None

运行产生的结果却是:

百度上找了半天都没有这个问题,只好自己摸索,现在写出来分享给大家

很明显,讲道理结果应该是指只出现一个窗口,但是却出现了两个,经过多项测试,发现如果在UI中对窗口设置标题等时,改变的只有其中一个窗口,另一个窗口从不改变。

解决办法:

其实是在Python的已有库中已经有Message这个类了,然后自己写的时候又忘记了引入自己写的Message类,导致了冲突。在UI.py中加入 from Message import Message 即可

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值