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 即可


版权声明:本文为a1270377682原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。