【问题标题】:Why my code doesn`t open tkinter window?为什么我的代码没有打开 tkinter 窗口?
【发布时间】:2017-04-16 22:33:32
【问题描述】:

我正在尝试构建一些将打开新的 Tkinter 窗口的代码,然后会有一个文本框,客户端将在那里输入文本,并且文本将保存在我的代码中的某个变量中。 我不明白什么不起作用,窗口没有打开。 请帮忙。。

import sys
from Tkinter import *

def mhello():
    mtext = ment.get()
    mlabel2 = Label(mGui, text = mtext).pack()
    return

mGui = Tk()
ment = StringVar()

mGui.geometry('450x450+500+300')
mGui.title('Nir`s ScreenShare')

mlabel = Label(mGui,text='My Label').pack()

mbutton = Button(mGui, text = 'OK', command = mhello,fg = 'red', bg='blue').pack()

mEntry = Entry(mGui,textvariable=ment).pack()

** 如果重要的话,我正在使用 python 2.7

【问题讨论】:

  • 你好。查看您的问题历史记录,您尚未接受答案。如果有任何答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。当然,没有义务这样做。

标签: python user-interface tkinter textbox


【解决方案1】:

对于每个 tkinter 代码,您都需要一个 mainloop(),将其添加到脚本末尾:

mGui.mainloop()

另外,作为提示:

mEntrymbuttonmlabel 都将是 None 因为.pack() 不返回任何内容。您需要在不同的行中执行它们。

例如:

mlabel = Label(mGui,text='My Label')
mlabel.pack()

【讨论】:

  • 呵呵,你快了 40 秒 ;)
  • Traceback(最近一次调用最后一次):文件“C:/Users/abc/project/textbox.py”,第 21 行,在 ment.mainloop() AttributeError: StringVar instance has no属性“主循环”
  • 你确定你复制正确吗?应该没有错误
  • @utannuta 我认为你复制了ment.mainloop() 而不是mGui.mainloop()
【解决方案2】:

你不见了

mGui.mainloop()

【讨论】:

    【解决方案3】:

    你需要一条主循环线

    mGui.mainloop()

    【讨论】:

    【解决方案4】:

    你需要添加

    mGui.mainloop()
    

    【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2017-01-17
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2015-07-28
    • 2016-10-15
    相关资源
    最近更新 更多