Çözüldü Python filedialog kodu çalışmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

deltadeveloperr

Hectopat
Katılım
13 Nisan 2022
Mesajlar
197
Çözümler
1
Daha fazla  
Sistem Özellikleri
macOS Sequoia
Apple Silicon ARM64 M1
16 GB Bellek
Cinsiyet
Erkek
Python'da butonla çalışan bir filedialog kodu yazmaya çalıştım fakat programı çalıştırdığımda butona tıklayınca dosya kaydetme menüsü gözükmüyor ve Terminal'a bir mesaj vermiyor. Ne yapmam lazım?

Python:
import tkinter as tk
import tkinter
from tkinter import ttk
from tkinter.ttk import *
from tkinter import filedialog



appwindow = tk.Tk()
appwindow.title("##################### (Ürün Etkinleştirilmedi)")
appwindow.iconbitmap('Icons\ICON.ico')
appwindow.geometry("800x510")
appwindow.resizable(False, False)

background1 = tk.Frame(appwindow, background='#212121', height="100000", width="10000")
background1.place(x='1', y='1')

Welcomer = tk.Label(appwindow, text="#####################", bg='#212121', fg='White')
Welcomer.place(x='1', y='1')
Welcomer.config(font="Arial 30")

ÜrünEtkinMi = tk.Label(appwindow, text="                                                                        Bilgi: ##################### Etkinleştirilmemiştir. Ürünü aktifleştiriniz.                                                              ", bg="#FADC00")
ÜrünEtkinMi.place(y='490')

ÖzelDosyaYap = ttk.Button(appwindow, text="Özel Dosya Oluştur", command='SpecialFileCreateRequest', cursor='hand2')
ÖzelDosyaYap.place(x='1', y='100')

def SpecialFileCreateRequest():
    appwindow.filename = filedialog.asksaveasfilename(
        filetypes=(
            ("Özel dosyalar", "*.*"),
        )
    )


appwindow.mainloop()
 
Çözüm
Kodunuzun çalışmamasının iki nedeni var. İlk nedeni command argümanını tırnak işareti ile kullanmanıza gerek yok. Bunu düzelttikten sonra da hata alacaktınız. Çünkü Python da kodlar sırayla okunur. Fonksiyonu tanımlamadan önce kullanmaya çalışırsanız NameError alırsınız. Kodun doğru hali:

Python:
import tkinter as tk
import tkinter
from tkinter import ttk
from tkinter.ttk import *
from tkinter import filedialog



appwindow = tk.Tk()
appwindow.title("##################### (Ürün Etkinleştirilmedi)")
appwindow.iconbitmap('Icons\ICON.ico')
appwindow.geometry("800x510")
appwindow.resizable(False, False)

background1 = tk.Frame(appwindow, background='#212121', height="100000", width="10000")
background1.place(x='1', y='1')

Welcomer = tk.Label(appwindow, text="#####################", bg='#212121', fg='White')
Welcomer.place(x='1', y='1')
Welcomer.config(font="Arial 30")

ÜrünEtkinMi = tk.Label(appwindow, text="                                                                        Bilgi: ##################### Etkinleştirilmemiştir. Ürünü aktifleştiriniz.                                                              ", bg="#FADC00")
ÜrünEtkinMi.place(y='490')

def SpecialFileCreateRequest():
    appwindow.filename = filedialog.asksaveasfilename(
        filetypes=(
            ("Özel dosyalar", "*.*"),
        )
    )

ÖzelDosyaYap = ttk.Button(appwindow, text="Özel Dosya Oluştur", command=SpecialFileCreateRequest, cursor='hand2')
ÖzelDosyaYap.place(x='1', y='100')




appwindow.mainloop()
Birde bunları deneyin.


Screenshot_6.png
 
Kodunuzun çalışmamasının iki nedeni var. İlk nedeni command argümanını tırnak işareti ile kullanmanıza gerek yok. Bunu düzelttikten sonra da hata alacaktınız. Çünkü Python da kodlar sırayla okunur. Fonksiyonu tanımlamadan önce kullanmaya çalışırsanız NameError alırsınız. Kodun doğru hali:

Python:
import tkinter as tk
import tkinter
from tkinter import ttk
from tkinter.ttk import *
from tkinter import filedialog



appwindow = tk.Tk()
appwindow.title("##################### (Ürün Etkinleştirilmedi)")
appwindow.iconbitmap('Icons\ICON.ico')
appwindow.geometry("800x510")
appwindow.resizable(False, False)

background1 = tk.Frame(appwindow, background='#212121', height="100000", width="10000")
background1.place(x='1', y='1')

Welcomer = tk.Label(appwindow, text="#####################", bg='#212121', fg='White')
Welcomer.place(x='1', y='1')
Welcomer.config(font="Arial 30")

ÜrünEtkinMi = tk.Label(appwindow, text="                                                                        Bilgi: ##################### Etkinleştirilmemiştir. Ürünü aktifleştiriniz.                                                              ", bg="#FADC00")
ÜrünEtkinMi.place(y='490')

def SpecialFileCreateRequest():
    appwindow.filename = filedialog.asksaveasfilename(
        filetypes=(
            ("Özel dosyalar", "*.*"),
        )
    )

ÖzelDosyaYap = ttk.Button(appwindow, text="Özel Dosya Oluştur", command=SpecialFileCreateRequest, cursor='hand2')
ÖzelDosyaYap.place(x='1', y='100')




appwindow.mainloop()
 
Çözüm
Kodunuzun çalışmamasının iki nedeni var. İlk nedeni command argümanını tırnak işareti ile kullanmanıza gerek yok. Bunu düzelttikten sonra da hata alacaktınız. Çünkü Python da kodlar sırayla okunur. Fonksiyonu tanımlamadan önce kullanmaya çalışırsanız nameerror alırsınız. Kodun doğru hali:

Python:
import tkinter as tk.
import tkinter.
from tkinter import ttk.
from tkinter.ttk import *
from tkinter import filedialog.

appwindow = tk.Tk()
appwindow.title("##################### (Ürün Etkinleştirilmedi)")
appwindow.iconbitmap('Icons\ICON.ico')
appwindow.geometry("800x510")
appwindow.resizable(False, False)

background1 = tk.Frame(appwindow, background='#212121', height="100000", width="10000")
background1.place(x='1', y='1')

Welcomer = tk.Label(appwindow, text="#####################", bg='#212121', fg='White')
Welcomer.place(x='1', y='1')
Welcomer.config(font="Arial 30")

ÜrünEtkinMi = tk.Label(appwindow, text=" Bilgi: ##################### Etkinleştirilmemiştir. Ürünü aktifleştiriniz. ", bg="#FADC00")
ÜrünEtkinMi.place(y='490')

def SpecialFileCreateRequest():
 appwindow.filename = filedialog.asksaveasfilename(
 filetypes=(
 ("Özel dosyalar", "*.*"),
 )
 )

ÖzelDosyaYap = ttk.Button(appwindow, text="Özel Dosya Oluştur", command=SpecialFileCreateRequest, cursor='hand2')
ÖzelDosyaYap.place(x='1', y='100')

appwindow.mainloop()

İşe yaradı. Teşekkürler.
 

Technopat Haberler

Yeni konular

Geri
Yukarı