teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/08/29 05:47

投稿

umyu
umyu

スコア5846

answer CHANGED
@@ -14,6 +14,88 @@
14
14
 
15
15
  ---
16
16
 
17
+ > 予め定めたパスワード(例えば 13579)と一致したらIF構文で次のプロセスへ進み、間違っていたらelseで終了にしたいのです。
18
+
19
+ 次のプロセスという部分がよく分かりませんでしたが。
20
+ やりたいことと回答を反映したサンプルコードです、ご参考まで。
21
+
22
+ ```Python
23
+ # -*- coding: utf-8 -*-
24
+ from tkinter import *
25
+ from tkinter import ttk
26
+
27
+ root = Tk()
28
+ root.title('Entry Test')
29
+ # Tk()を呼び出し後に使用可能、クリックイベントから参照するために、この位置で宣言
30
+ username = StringVar()
31
+ email = StringVar()
32
+ password = StringVar()
33
+
34
+
35
+ # OKボタンをクリック時のイベント
36
+ def ok_click():
37
+ if not (password.get() == "13579"):
38
+ # 画面を終了=root.mainloop()の次の行から実行再開
39
+ root.quit()
40
+ return
41
+ # 一致したなら
42
+ print("Done")
43
+
44
+
45
+ def main():
46
+ root.resizable ( False, False )
47
+ frame1 = ttk.Frame ( root, padding=10 )
48
+ frame1.grid ()
49
+
50
+ label1 = ttk.Label ( frame1, text='Username', padding=(5, 2) )
51
+ label1.grid ( row=0, column=0, sticky=E )
52
+
53
+ label2 = ttk.Label ( frame1, text='Email', padding=(5, 2) )
54
+ label2.grid ( row=1, column=0, sticky=E )
55
+
56
+ label3 = ttk.Label ( frame1, text='Password', padding=(5, 2) )
57
+ label3.grid ( row=2, column=0, sticky=E )
58
+
59
+ # Username Entry
60
+ username_entry = ttk.Entry (
61
+ frame1,
62
+ textvariable=username,
63
+ width=30 )
64
+ username_entry.grid ( row=0, column=1 )
65
+
66
+ # Email Entry
67
+ email_entry = ttk.Entry (
68
+ frame1,
69
+ textvariable=email,
70
+ width=30 )
71
+ email_entry.grid ( row=1, column=1 )
72
+
73
+ # Password Entry
74
+ password_entry = ttk.Entry (
75
+ frame1,
76
+ textvariable=password,
77
+ width=30,
78
+ show='*' )
79
+ password_entry.grid ( row=2, column=1 )
80
+
81
+ frame2 = ttk.Frame ( frame1, padding=(0, 5) )
82
+ frame2.grid ( row=3, column=1, sticky=W )
83
+ button1 = ttk.Button ( frame2, text='OK', command=ok_click)
84
+ button1.pack ( side=LEFT )
85
+ button2 = ttk.Button ( frame2, text='Cancel', command=quit )
86
+ button2.pack ( side=LEFT )
87
+
88
+ root.mainloop()
89
+
90
+ print(password.get())
91
+
92
+
93
+ if __name__ == '__main__':
94
+ main()
95
+ ```
96
+
97
+ ---
98
+
17
99
  > 他のライブラリーで
18
100
 
19
101
  `Python`言語に限定していえば、`QtDesigner`が使える`PyQT`か`Kivy`ですが。
@@ -22,7 +104,7 @@
22
104
 
23
105
  0. 日本語の公式ドキュメント情報が壊滅的。
24
106
  あってもサンプルコードか動かないサンプルコード。
25
- 必然的に英語情報を当たる必要があ
107
+ 必然的に2次情報(誰かのサンプルを見て初心者がQiitaに記事を書いて見ました系)か英語の1次情報を当たる必要があります
26
108
  0. 解説内容が他言語でGUIアプリを作成した事がある人向けの内容。
27
109
  前提知識として
28
110
  ・イベント駆動型プログラミング