-1

我正在尝试制作简单的代码和 GUI。我也mainloop()用于显示。在 pycharm 中工作正常,显示但当我想双击main.py文件时只出现 0.5 秒。我究竟做错了什么?

在 pycharm 中工作正常,这是一个截图: 截屏

main.py不显示。


from tkinter import *
from tkcalendar import DateEntry
master = Tk()

#pack
#place
#grid
canvas = Canvas(master, height=450, width=750)
canvas.pack()
frame_ust=Frame(master, bg='#add8e6')
frame_ust.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.1)

frame_alt_sol=Frame(master, bg='#add8e6')
frame_alt_sol.place(relx=0.1, rely=0.21, relwidth=0.23, relheight=0.5)

frame_alt_sag=Frame(master, bg='#add8e6')
frame_alt_sag.place(relx=0.34, rely=0.21, relwidth=0.56, relheight=0.5)

hatirlatma_tipi_etiket = Label(frame_ust, bg='#add8e6',text="Hatırlatma tipi",font="verdana 12 bold")
hatirlatma_tipi_etiket.pack(padx=10, pady=10, side=LEFT)

hatirlatma_tipi_opsiyon= StringVar(frame_ust)
hatirlatma_tipi_opsiyon.set("\t")

hatirlatma_tipi_acilir_menu= OptionMenu(frame_ust,hatirlatma_tipi_opsiyon, "Doğum Günü", "Alışveriş", "Ödeme")
hatirlatma_tipi_acilir_menu.pack(padx=10,pady=10,side=LEFT)

hatirlatma_tarihi_etiket = Label(frame_ust, bg='#add8e6',text="Hatırlatma Tarihi",font="verdana 12 bold")
hatirlatma_tarihi_etiket.pack(padx=10, pady=10, side=LEFT)

hatirlatma_tarih_secici = DateEntry(frame_ust, widh=12, background='orange', foreground='black', borderwidht=1, locale="de_DE")
hatirlatma_tarih_secici._top_cal.overrideredirect(False)
hatirlatma_tarih_secici.pack(padx=10, pady=10, side=LEFT)

Label(frame_alt_sol, bg='#add8e6', text="Hatırlatma Yöntemi",font="verdana 10 bold").pack(padx=10, pady=10, anchor=NW)

var= IntVar()

R1=Radiobutton(frame_alt_sol, text="Sisteme Kaydet", variable=var, value=1, bg='#add8e6', font="verdana 10" )
R1.pack(anchor=NW, pady=5, padx=15)

R2=Radiobutton(frame_alt_sol, text="E-posta gönder", variable=var, value=2, bg='#add8e6', font="verdana 10" )
R2.pack(anchor=NW, pady=5, padx=15)

var1=IntVar()
C1=Checkbutton(frame_alt_sol, text="Bir Hafta Önce", variable=var1, onvalue=1, offvalue=0,bg='#add8e6', font="verdana 10" )
C1.pack(anchor=NW, pady=2, padx=25)

var2=IntVar()
C2=Checkbutton(frame_alt_sol, text="Bir Gün Önce", variable=var2, onvalue=1, offvalue=0,bg='#add8e6', font="verdana 10" )
C2.pack(anchor=NW, pady=2, padx=25)

var3=IntVar()
C3=Checkbutton(frame_alt_sol, text="Aynı Gün", variable=var3, onvalue=1, offvalue=0,bg='#add8e6', font="verdana 10" )
C3.pack(anchor=NW, pady=2, padx=25)

from tkinter import messagebox
def gonder():
    son_mesaj= ""
    try:
        if var.get():
            if var.get() == 1:
                son_mesaj += "Veriniz basarıyla sisteme kaydedilmiştir."

                tip =hatirlatma_tipi_opsiyon.get() if hatirlatma_tipi_opsiyon.get()=='' else "Genel"
                tarih = hatirlatma_tarih_secici.get()
                mesaj = metin_alanı.get("1.0", "end")

                with open("hatırlatmalar.txt","w") as dosya:
                    dosya.write('{} kategorisinde,{} tarihine ve "{}" notuyla hatırlatma'.format(
                        tip,
                        tarih,
                        mesaj
                    ))
                    dosya.close()

            elif var.get() ==2:
                son_mesaj += "E-posta yoluyla hatırlatma size ulaşacaktır."

            messagebox.showinfo("Basarili Islem", son_mesaj)
        else:
            son_mesaj += "Gerekli alanların doldurulgundan emin olun !"
            messagebox.showwarning("Yetersiz Bilgi", son_mesaj)
    except:
        son_mesaj += "İşlem başarısız oldu"
        messagebox.showerror("Başarısız işlem", son_mesaj)
    finally:
        master.destroy()

Label(frame_alt_sag, bg='#add8e6', text="Hatırlatma Mesajı",font="verdana 15 bold").pack(padx=10, pady=10, anchor=NW)

metin_alanı=Text(frame_alt_sag, height=9, width=50)
metin_alanı.tag_configure('style',foreground="#bfbfbf",font=('Verdena',7,'bold'))
metin_alanı.pack()
karilama_metni="Mesajını buraya gir"
metin_alanı.insert(END, karilama_metni,'style')

gonder_butonu=Button(frame_alt_sag, text="Gönder", command=gonder)

gonder_butonu.pack(anchor=S)

master.mainloop()
4

1 回答 1

0

您可能需要在命令提示符下执行pip install tkcalendarpip install tkintertable

Pycharm 通常会在项目中提供一个虚拟解释器,如果你没有更改它或让它成为那个解释器,那么你在系统路径中的 python 版本可能没有相同的库。

我自己在cmd中尝试了你的代码,它给了我

Traceback (most recent call last): File "CSVParser.py", line 3, in <module> from tkcalendar import DateEntry ModuleNotFoundError: No module named 'tkcalendar'

尝试双击 .py 文件给了我和你一样的结果。

于 2021-01-15T21:47:57.170 回答