+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Tkinter GUI没有显示Windows屏幕

发布于2021-03-02 15:34     阅读(214)     评论(0)     点赞(16)     收藏(1)


0

1

2

3

4

我尝试制作简单的代码和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()

解决方案


你可能需要做的pip install tkcalendar,并pip 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文件会给我与您相同的结果。

0

1

2

3

4

5

6



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/869884/d537720c5d4ef09ecc0c/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

16 0
收藏该文
已收藏

评论内容:(最多支持255个字符)