![見出し画像](https://assets.st-note.com/production/uploads/images/67725693/rectangle_large_type_2_11d559cdd0fe1c07a8d0d486453febf9.png?width=800)
いいんだけど、前の方がいいかも
良くしようとしてあんまり良くなくなったということもあるんだな。
こんにちは!サキナオコです^ ^
ひどく寒いです><凍えそう。ダメだとばかり思っていた空手の試験合格してました@@!!いえーい!^o^
いつもご覧いただき、スキ、フォロー、コメント、サポート、オススメまでも本当にほんとうにどうもありがとうございます*^o^*
そんなあなたのおかげで今日まで続けてこられています〜!!^o^/
さて、ええ〜っとPython、TKinterを使って作ったタイマーですが。
Python2系の壁(これが原因なのかは不明)高く、とうとうダブルクリックで実行しきれず。いずれ3系だけにしてみることにして、
とりあえずタイマーをスタンドアロンアプリにしてみようかな、と思いました。
え〜と、まずは、どうするんだっけ?ターミナルで入力していたから、それをウィンドウで入力するようにしなくちゃいけなくて…で、それをGUIで作って…
早速頭がこんがらがっています。
GUI(Graphical User Interface)とはウィンドウアプリのことで、ターミナルとか使わずにウィンドウで操作できるものです。
ああ、PySimpleGUIを使ってアプリ作ったなぁ〜じゃあ、早速書いてみよう!ととりあえず書いている途中で、無視できない大変重要なことに気づきました。
いや、私、これ、既にGUIのTkinter使って書いてるし!!
あっ!それなのにターミナルに数字入れて使ってた…GUI使って書いた意味半減。。じゃあ、その書いたものにターミナルで入力してた部分だけ追加すればいいってことだな、と思い、PySimpleGUIを使うのをやめてTkinterで書くことにしました。
追加して書いていたら何やら何がなんだかわからなくごちゃごちゃしてきましたので、webで見つけたシンプルな動作のスクリプトを使わせていただき、それを元に書き直してみました。
赤と緑のお知らせウィンドウはとりあえずやめて、messageboxを出して知らせるようにしました。
分の入力ウィンドウも無事できましたが、上にぎゅうぎゅう詰めの配置が気に入らず、どうやったらいいのか調べるのに結構時間がかかりました。(コメントアウトの部分)
from time import sleep
import tkinter as tk
from tkinter import messagebox as mbox
win = tk.Tk()
win.geometry("200x200")
win.title("Saki's Timer")
win.config(bg = "green")
label = tk.Label(win,text='Type the number of minutes!')
label.pack(ipady = 20) # 文字周り縦の空き具合
text = tk.Entry(win)
text.pack(expand = True) # これは持分の範囲の中での中央揃え
def ok_cl():
s = text.get()
sleep(int(s)*60)
mbox.showinfo("Saki's Timer",'時間ですyo〜!')
okButton = tk.Button(win,text='OK', command=ok_cl,fg="red")
okButton.pack(ipadx = 15, ipady = 15) # ボタンの文字縦横の空き具合指定
win.mainloop()
なんとか、配置も納得できたので、タイマーを実行してみました。
おお!ウィンドウが地味ですが、まぁ、いいです。って、あれ?!
他のアプリ使ってるとその下に表示されてしまい、見えません。。
タイマーの意味な〜い!><
前のはちゃんと最前面に出てきていたのですけどね…
使いやすくしようとしてなんだか逆に使いづらくなってしましまいました。。
いろいろ調べましたが、ちょっとよくわからず…多分def ok_clの中から「mbox.showinfo("Saki's Timer",'時間ですyo〜!')」を出して、最前面に出る関数を別に作って…とかやるのかな、という感じがするのですけど、まあ、とりあえず今日は終わります。
この記事が気に入ったらサポートをしてみませんか?