【问题标题】:Not able to to call function with button in tkinter无法使用 tkinter 中的按钮调用函数
【发布时间】:2017-08-05 04:52:18
【问题描述】:

我是 Tkinter 的新手,也是这个论坛的新手。我正在尝试学习使用 Tkinter,但我遇到了问题!

我想通过编写文本将一些文本保存到文本文件中,然后按下按钮运行保存信息的函数。但似乎我的“命令”没有启动该功能。

def ny_artikel():
   artikel_data = open ("artikel_databas.txt", "w")
   artikel_data.write(ny_artikel.get())
   artikel_data.close ()

spara_artikel = Button(new_product_window, text ="Save new article", command = ny_artikel)
spara_artikel.grid(row=7, column=1)

ny_artikel 是我的程序中使用的输入框,但我认为这里的行太多,无法将其全部粘贴。

当我按下按钮时,什么都没有发生。甚至没有错误消息。

【问题讨论】:

  • 你确定没有错误信息吗?您定义函数 ny_artikel 并可能期望在某处具有完全相同名称的 Entry 小部件的方式,如果任何地方都没有错误,我会感到惊讶。
  • print('function called')放入一个函数中(在顶部),判断是否调用了该函数。
  • 我试着照你说的做,特里。我输入了 print(ny_artikel)。当我这样做时,我没有收到任何错误消息,而是一条蓝色文字说: 这是表明有问题还是只是确认功能正在运行?我从另一个函数中将此函数称为“ny_artikel”是否存在问题?谢谢你的帮助:)

标签: python button tkinter command


【解决方案1】:

我假设,您答案中的代码只是您的 python 文件的一部分。我在我的示例中使用 Entry e 进行了尝试,它工作正常:

import tkinter

def ny_artikel():
   with open('artikel_databas.txt', 'w') as artikel_data:
      artikel_data.write(e.get())

main = tkinter.Tk()
e = tkinter.Entry(main)
e.grid(row=0, column=0)
spara_artikel = tkinter.Button(main, text ="Save new article", command = ny_artikel)
spara_artikel.grid(row=1, column=0)
main.mainloop()

作为替代方法,我在 ny_artikel() 函数中使用了 'with' 'as',它会自动关闭文件。使用 file.close() 也可以正常工作。

What is the python keyword "with" used for?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多