Tkinterモジュール演習(python):簡単な計算機

事前知識

エントリー入門

  • エントリは、1行のテキストを入力するために使用されます
Entry(root, text='input your text here').pack() 
  • エントリに初期値を設定し、textvariableを使用して変数をエントリにバインドし、入力変数のタイプを決定します
e = StringVar() 
entry = Entry(root, textvariable=e).pack() 
e.set('input your text here') 
  • 状態を読み取り専用に設定します
e2 = StringVar() 
entry = Entry(root, textvariable=e2) 
e2.set('not modify') 
entry.pack() 
entry['state'] = 'readonly' 
  • その他の情報については、以下のリンクを参照してください

序章

構文を使用する

widget = Radiobutton( master, parameter=value, ... )
  • マスター:テキストボックスコントロールの親コンテナ
  • パラメータ:テキストボックスのパラメータ
  • value:パラメータに対応する値

パラメータ説明

  • テキストラベルテキスト、ラベルにテキストを追加できます
  • レリーフラベルスタイル、コントロールの3D効果を設定します。オプション:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
  • フォントラベルテキストフォント設定、font =('font'、font size、'bold / italic / underline / overstrike')
  • その他の情報については、以下のリンクを参照してください

ボタン紹介

構文を使用する

widget = Button( master, parameter=value, ... )
  • マスター:ボタンコントロールの親コンテナ
  • パラメータ:ボタンのパラメータ
  • value:パラメータに対応する値

パラメータ説明

  • 状態ボタンの状態オプション、状態にはDISABLED / NORMAL/ACTIVEがあります
  • ボタンがクリックされたときに実行されるコマンドボタンに関連付けられた機能
  • その他の情報については、以下のリンクを参照してください

デザインのアイデア

  1. まず、必要なパッケージ--tkinterをインポートし、Tkオブジェクトをインスタンス化してウィンドウを作成します
import tkinter

#创建窗口
root = tkinter.Tk()
#创建框架
frame = tkinter.Frame(root)

root.mainloop()
  1. 各コンポーネントの場所を大まかに計画します
  2. コードデザイン、タイピングなど。

コード

import tkinter

#创建窗口
root = tkinter.Tk()
#创建框架
frame = tkinter.Frame(root)
#摆放框架
frame.pack(padx= 20,pady = 10)

#创建变量
v1 = tkinter.StringVar()
v2 = tkinter.StringVar()
v3 = tkinter.StringVar()

#创建标签
L1 = tkinter.Label(frame,text = '简单计算器',font = '微软雅黑,30')
L2 = tkinter.Label(frame,text = '=')
#摆放标签
L1.grid(row = 0,column = 2,pady = 10,padx = 10)
L2.grid(row = 1,column = 2,padx= 10,pady = 10)

#定义筛选方法
def text(content):
    return content.isdigit()

#创建输入窗口
e1 = tkinter.Entry(frame,width = 10,textvariable = v1,validate = 'key',validatecommand = (text,'%P'))
e2 = tkinter.Entry(frame,width = 10,textvariable = v2,validate = 'key',validatecommand = (text,'%P'))
e3 = tkinter.Entry(frame,width = 10,textvariable = v3,validate = 'key',validatecommand = (text,'%P'),state ='readonly')

#摆放输入
e1.grid(row = 1,column = 0,pady =10,padx = 10)
e2.grid(row = 1,column = 1,padx = 10,pady = 10)
e3.grid(row = 1,column = 3,padx = 10,pady = 10)

#定义计算方法
def add():
    result = int(v1.get()) + int(v2.get())
    v3.set(result)
def subtract():
    result = int(v1.get()) - int(v2.get())
    v3.set(result)
def ride():
    result = int(v1.get()) * int(v2.get())
    v3.set(result)
def division():
    result = int(v1.get()) / int(v2.get())
    v3.set(result)

#创建按键
b0 = tkinter.Button(frame,text = '+',command = add,bd = 5)
b1 = tkinter.Button(frame,text = '-',command = subtract,bd = 5)
b2 = tkinter.Button(frame,text = '*',command = ride,bd = 5)
b3 = tkinter.Button(frame,text = '/',command = division,bd = 5)

#摆放按键
b0.grid(row = 2,column = 0,padx = 10,pady = 10)
b1.grid(row = 2,column = 1,pady = 10)
b2.grid(row = 2,column = 2,pady = 10)
b3.grid(row = 2,column = 3,pady = 10)

#进入消息循环

root.mainloop()

結果を示す

ここに画像の説明を挿入

リンク

tkinterコントロール

詳細なPythonTkinterグリッドレイアウトマネージャー


この記事が私の友達に役立つなら、私はいいねとサポートをしたいと思います〜ありがとうございました〜

ここに画像の説明を挿入


おすすめ

転載: blog.csdn.net/weixin_46627433/article/details/122897801