मैं एक बिल्ड पुनर्प्राप्ति फ़ॉर्म बनाने की कोशिश कर रहा हूं, और बटन के साथ समस्याएं प्रतीत होती हैं ... मैं पाइथन/टिंकर जीयूआई प्रोग्रामिंग (और सामान्य रूप से जीयूआई प्रोग्रामिंग) में एक नौसिखिया हूं और हैलो वर्ल्ड के कंकाल को उधार लिया ऐप, और सॉर्टा ने इसे बनाया।टिंकर बटन कमांड प्रोग्राम चलाने पर सक्रिय करता है?
नीचे दिए गए कोड में, मैंने क्लिक किए जाने पर अपने वर्ग के आंतरिक get_dir() फ़ंक्शन को कॉल करने के लिए अपने ब्राउज़ बटन के "कमांड" विकल्प को सेट किया है। हालांकि, जैसे ही मैं ऐप चलाने का प्रयास करता हूं, get_dir() फ़ंक्शन को कॉल किया जाता है और मुझे निर्देशिका चुनने के लिए कहा जाता है। ऐसा कोई विचार क्यों होता है, और यह ठीक से व्यवहार करने के लिए मैं क्या कर सकता हूं?
from Tkinter import *
import tkFont
from tkFileDialog import askdirectory
class App:
def __init__(self, master):
fontHead = tkFont.Font(family="Arial", size=10, weight=tkFont.BOLD)
fontBold = tkFont.Font(family="Arial", size=8, weight=tkFont.BOLD)
fontReg = tkFont.Font(family="Arial", size=8)
frameN = Frame(master)
frameN.grid(row=0,padx=5,pady=5)
frameXBH = Frame(frameN)
frameXBH.grid(row=0,columnspan=5,padx=5)
Canvas(frameXBH,borderwidth=0,relief="flat",height=1,width=20,background="#cccccc").grid(row=0)
Label(frameXBH, text="Xbox 360",font=fontBold,width=9).grid(row=0,column=1)
Canvas(frameXBH,borderwidth=0,relief="flat",height=1,width=440,background="#cccccc").grid(row=0,column=2,sticky="WE")
Label(frameN, text="Destination Path:",font=fontReg).grid(row=1,sticky="W")
xbPath = Entry(frameN,width=30,font=fontReg)
xbPath.grid(row=1,column=1,sticky="W")
xbBrowse = Button(frameN,text="Browse...",font=fontReg,command=self.get_dir(xbPath))
xbBrowse.grid(row=1,column=2,sticky="W")
xbRel = Checkbutton(frameN,text="Release",font=fontReg)
xbRel.grid(row=1,column=3,sticky="W")
xbShip = Checkbutton(frameN,text="Ship",font=fontReg)
xbShip.grid(row=1,column=4,sticky="W")
Canvas(frameN,borderwidth=1,relief="groove",width=550,height=0).grid(row=2,columnspan=5,pady=10)
# SAVE AND CANCEL
btnSave = Button(frameN,text="Save",width=10)
btnSave.grid(row=3,column=3,sticky="E")
btnCancel = Button(frameN,text="Cancel",width=10)
btnCancel.grid(row=3,column=4,sticky="W")
def get_dir(self,box):
tmp = askdirectory(mustexist=1,title="Please select a destination")
tmp = tmp.replace("/","\\")
box.delete(0,END)
box.insert(0,tmp)
root = Tk()
root.resizable(0,0)
app = App(root)
root.mainloop()
संभावित डुप्लिकेट
फिर अपने
get_dir()
विधि की तरह दिखाई देगा [घोषित होने पर बटन पैरामीटर "कमांड" निष्पादित क्यों किया जाता है?] (http://stackoverflow.com/questions/5767228/why-i एस-बटन-पैरामीटर-कमांड-निष्पादित-कब-घोषित) – nbro@ एनब्रो मुझे लगता है कि आपके पास डुप्लिकेट पीछे है, मैंने 2010 में यह पूछा था, जिसे आप इसे डुप्लिकेट कर रहे हैं, 2011 -_- –
में पूछा गया था कारण मैं इस पोस्ट को दूसरे के डुप्लिकेट के रूप में चिह्नित करता हूं क्योंकि दूसरे में वास्तव में अधिक जानकारी होती है और वह प्रश्न सरल होता है .. – nbro