9

ボタンが押されたときにaskopenfilenameを初期化するGUIがありますが、ユーザーがaskopenfilenameダイアログでキャンセルを選択したときに説明できるようにしたいです

クリックされたボタンを処理する関数を次に示しますが、if ステートメントの行が機能していないようです!

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))
4

3 に答える 3

8

.askopenfilename()None ではなく、キャンセル時に空の文字列を返します。''したがって、またはと比較できますFalse。コードサンプルを用意するために:

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

少なくともそれが私が行う方法です。あなたには独自の好みがあるかもしれません。

于 2013-02-21T23:07:38.090 に答える
0

以下に示すように、キャンセルのユーザー選択を考慮することができます。

def openFileClicked(self):
    self.filename = filedialog.askopenfilename()
    # When user select cancel
    if (len(self.filename) == 0): 
        # put your code here in case the user selected cancel
    
    # Otherwise the user selected a file
    else:
        # put your code here in case the user selected a file
于 2021-06-21T01:32:20.503 に答える