import tkinter as tk
from tkinter import *
import os
root = Tk()
root.geometry('700x700')
例如,用戶輸入了 chrome.exe 的路徑,但它說它是未定義的,可能是因為它在 root.mainloop 中,我試圖將它放在 mainloop 之外,但結果相同
def exeNew():
Path = text0.get(1.0, "end-1c")
text0 = tk.Text(root, height=1, width=30)
text0.place(x=400, y=500)
printButton = tk.Button(root, text="ADD", command=exeNew)
printButton.place(x=460, y=640)
然后這里 os.startfile 應該打開 chrome.exe
os.startfile(Path)
root.mainloop()
錯誤輸出
uj5u.com熱心網友回復:
您的變數 Path 僅在函式內部定義。您無法從函式外部訪問它。
它與
def declare_variable():
x = 5
print(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
一種解決方案是在創建按鈕之前宣告 Path
uj5u.com熱心網友回復:
函式 exeNew 正在設定一個區域變數,該變數Path在退出 exeNew 的范圍后不再存在。
在 exeNew 中,global Path在設定 Path 之前插入該行。
您可能需要考慮在程式開始時將 Path 顯式設定為 None,并且僅在 Path 不是 None 時呼叫 os.startfile。
uj5u.com熱心網友回復:
我認為Path需要將變數宣告為全域變數。
更詳細地說,全域變數是可全域訪問或在整個程式中隨處可訪問的變數。一旦宣告,它們會在程式的整個運行時保留在記憶體中。這意味著它們可以在任何時候被任何函式更改,并且可能會影響整個程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/490112.html
