OSはwindows7 pythonは3.6.1を使っています
CPU2.6G メモリ3.89G
現在Tkinterを使ってストップウォッチみたいな画面を作ろうとしています
前回質問させて頂いた時にほぼ全て完成したんですが
この後、色々オプションを付けてみようという事になり
ラベルやボタン、メニューバーを付けようと思いそれをやろうとしたら
コードを実行した時、画面は出てくるんですが
その画面にマウスのカーソルを合わせると「処理中」を意味するような青い円が回転してる
エフェクトが出てきて(Tkinterの画面のみ画面外にカーソルを出すと処理中の表示は消える)
非常に重いです
一応画面のストップウォッチの数字はちゃんと1秒刻みで進んでるみたいですが
ボタンやメニューバーを押せる様な状況ではないです
この重い処理を軽くするにはどうしたらいいでしょうか?
メインがこちら
python
1from tkinter import * 2from time import sleep 3import timer1 4 5 6def write_time(): 7 8 cv.delete("all") 9 10 cv.create_rectangle(0,0,500,500,fill="green") 11 12 cv.place(x=200,y=0) 13 14 TD=timer1.timerope() 15 16 cv.create_text(150,30,fill="black",text=TD) 17 18 sleep(1) 19 20 win.after(1,write_time) 21 22 23 24#画面作成 25win=Tk() 26win.title("タイマー") 27win.geometry("500x500") 28 29 30#ラベル作成 31static1=Label(text="8月1日") 32static1.place(x=50,y=30) 33 34 35#ボタン作成 36btn=Button(win,text="開始",width=15) 37btn.pack(padx=20,side="left") 38 39btn=Button(win,text="終了",width=15) 40btn.pack(padx=20,side="left") 41 42 43#描画 44cv=Canvas(win,width=300,height=500) 45cv.pack() 46win.after(1,write_time()) 47win.mainloop() 48
メインで使ってるtimer1モジュールがこちら
python
1import datetime 2import math 3 4def timerope(): 5 dt1=datetime.datetime(year=2019,month=8,day=1,hour=0) 6 7 dt2=datetime.datetime.now() 8 9 td=dt2-dt1 10 11 TD=math.floor(td.total_seconds()) 12 13 return TD 14 15コード
元々メインの中にボタンやメニューバーのコードを書いてましたが
あまりにも重くて書く意味が無かったので↑では外してます
そもそも上の時点で既に重いです
それとボタンの配置なんですがpack()関数だと配置を上下左右の4箇所にしか設定できず
キャンバスの部分に重なって片方が見えなくなるので
ボタンは2つとも左詰めにして上から「開始・終了」の順に並べたいのですが
位置を細かく指定するにはどうやったらいいんでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/30 07:20