【问题标题】:Problems using Tkinter askopenfile使用 Tkinter 的问题 askopenfile
【发布时间】:2014-12-21 18:48:35
【问题描述】:

我想在 Python 2.7 的 Tkinter 中启动“打开文件”对话框。

我的代码以:

开头
from Tkinter import Frame, Tk, BOTH, Text, Menu, END
import tkFileDialog as tkfd
import fileinput
root = Tk()

global strTab
strTab = ""

def openTab(event):
    r = tkfd.askopenfilename()
    strTab = unicodedata.normalize('NFKD', r).encode('ascii','ignore')

稍后在我的代码中:

btnLoadTab = Button(root,          
         text="Load Tab",      
         width=30,height=5,    
         bg="white",fg="black")

btnLoadTab.bind("<Button-1>", openTab)
btnLoadTab.pack()    
root.mainloop()
  1. 当我按下按钮时,会显示一个“打开文件”对话框,但当我选择一个文件时,它会关闭并且按钮保持“单击”状态。

  2. 如果我稍后在openTab 之外调用strTab,它仍然等于“”。

【问题讨论】:

  • 请让您的示例可运行。一个小的可运行样本可能看起来过多,但它对获得好的答案大有裨益。
  • 您不应该将bind 与按钮一起使用。按钮有一个command 属性,专门用于在您单击时调用命令。
  • 是的,剩余的“点击”是因为您使用绑定将命令附加到按钮。使用command 属性。
  • 您应该删除global strTab,因为所有全局名称都是自动全局的;-)。

标签: python function tkinter


【解决方案1】:

你可以在这里找到可行的例子:http://www.python-course.eu/tkinter_dialogs.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多