askopenfilename 处理取消对话 [英] askopenfilename handling cancel on dialogue

查看:36
本文介绍了askopenfilename 处理取消对话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 gui,它在按下按钮时初始化 askopenfilename,但我希望能够说明用户何时在 askopenfilename 对话框中选择取消

I have a gui which initializes the askopenfilename when a button is pressed but I want to be able to account for when the user selects cancel on the askopenfilename dialogue

这是我处理单击按钮的函数,但 if 语句行似乎不起作用!

Here is my function to handle the clicked button yet the if statement line doesnt seem to work!

def openFileClicked(self):
  self.filename=filedialog.askopenfilename()
  if self.filename== None: 
        self.e.config(state= NORMAL)
        self.e.delete(0,END)
        self.e.insert(0,"...")
        self.e.config(state="readonly")
  self.e.config(state= NORMAL)
  self.e.delete(0,END)
  self.e.insert(0, self.filename)
  self.e.config(state="readonly")
  print ((self.filename))

推荐答案

.askopenfilename() 在取消时返回空字符串,而不是 None.因此,您可以与 ''False 进行比较.为了获得代码示例:

.askopenfilename() returns an empty string on cancel, not None. So you can either compare to '' or False. For the sake of having a code sample:

def openFileClicked(self):
    self.filename = filedialog.askopenfilename()
    if not self.filename:
        # config...delete...etc.
    # Rest of function

至少我是这样做的,你可能有自己的喜好.

At least that's how I'd do it, you may have your own preferences.

这篇关于askopenfilename 处理取消对话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆