pythonのTkinterライブラリの簡単なアプリケーション-簡単な計算機を開発する

pythonのTkinterライブラリを使用して簡単な計算機を開発する


序文

どの主流言語でも簡単な計算機を開発できます。この記事の開発にはpythonを使用します。添付のソースコード


ヒント:以下はこの記事の内容です。以下のケースは参照用です

1.実験の準備

1.開発ソフトウェアの選択-jupyterノートブックに
pythonを書き込むことができるソフトウェアがたくさんあります私はこの実験を使用します。jupyterノートブックを使用する場合は、最初にanacondaをインストールする必要があります。インストールチュートリアルは次のとおりです。Anacondaインストールチュートリアル(グラフィックス)ですが、注意してください。 AnacondaにインストールされているTsinghuaソースは利用できません。Tsinghuaミラーを使用する必要があります。Baiduで確認できます。ここにリンクはありません。

2.グラフィカルインターフェイスの実現-Tkinter

pythonを使用してグラフィカルインターフェイスを実装する場合、使用する必要のあるパッケージはTkinterです。Tkinterは、pythonを使用したウィンドウ設計用のモジュールです。Tkinterモジュール(「Tkインターフェイス」)は、Pythonの標準TkGUIツールキットへのインターフェイスです。pythonの特定のGUIインターフェイスとして、それはイメージウィンドウです。Tkinterは、pythonに付属し、編集可能なGUIインターフェイスです。GUIを使用して多くの直感的な機能を実現できます。たとえば、計算機を開発する場合、それが単なるプログラムの入力と出力である場合などです。ウィンドウの場合、ユーザーエクスペリエンスは役に立ちません。グラフィカルな小さなウィンドウのすべての開発が必要です。言語は読みやすく、使いやすいので、これが私が計算機としてpythonを選択する理由です。Tkinterについて詳しく知りたい場合は、次のリンクを使用して、大物の詳細な説明を参照できます。PythonGUItkinterウィンドウチュートリアルコレクション

2.開発手順

1.ライブラリをインポートします

このとき、pythonのTkinterパッケージとmathパッケージを呼び出す必要があります。python3ののTkinterの呼び出しは大文字になっいることに注意してくださいそれ以外の場合、コンパイルはエラーを報告します。
コードは次のように表示されます。

import math
import tkinter as tk

2.インターフェース設計

プログラムの設計は、主に2つの部分に分かれています。1つはインターフェイスの設計で、もう1つは計算です。まず、インターフェースの設計を見てみましょう。まず、フレームワークを構築します。ループを使用してボタンを入力できます。その前に、次のように計算機の初期化コードに注意する必要があり
ます(例)。

class Calc(tk.Tk):
    """计算器窗体类"""
    def __init__(self):
        """初始化实例"""
        tk.Tk.__init__(self)
        self.title("我的计算器")
        self.memory = 0  # 暂存数值
        self.Demo()

    def Demo(self):
        """创建界面"""
        btn_list = ["C", "(", ")", "/",
                    "7", "8", "9", "*",
                    "4", "5", "6", "-",
                    "1", "2", "3", "+",
                    "+/-", "0", ".", "="]
        r = 1
        c = 0
        for b in btn_list:
            self.button = tk.Button(self, text=b, width=5,
                                    command=(lambda x=b: self.operate(x)))
            self.button.grid(row=r, column=c, padx=3, pady=6)
            c += 1
            if c > 3:
                c = 0
                r += 1
        self.entry = tk.Entry(self, width=24, borderwidth=2,
                              bg="black", font=("黑体", 11))
        self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)

次のステップは、アルゴリズム部分を実装することです。これまで、C ++では、2-(3-2)のような多項式を実現するために、多項式が計算機に一度に入力されるときに、この種の括弧の優先順位の問題を考慮する必要があります。優先度を決定するには、数字と記号を別々にスタックにプッシュする必要があります。pythonを使用する場合、Tkinterテキストボックス(エントリ)を使用してエントリの使用法を実現できます。多くの用途があります。詳細については、ここではなく、PythonXML解析参照してください。
コードは次のように1つずつ説明されています。

def operate(self, key):
        """press the button"""
        if key == "=":  # 输出结果
            result = eval(self.entry.get())#获取文本框输入的值(值为=)
            self.entry.insert(tk.END, " = " + str(result))#在’=‘后输出计算结果
        elif key == "C":  # 清空输入框
            self.entry.delete(0, tk.END)#将结果清零
        elif key == "+/-":  # 取相反数
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            elif self.entry.get()[0] == "-":
                self.entry.delete(0)
            else:
                self.entry.insert(0, "-")
        else:  # 其他键
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, key)
if __name__ == "__main__":
    Calculator().mainloop()

3.鍵-Tkinterライブラリの呼び出しを実現するため

Pythonは、グラフィカルな開発インターフェイス用に複数のライブラリを提供します。一般的に使用されるライブラリはTkinterを使用します。Tkinterを使用すると、コードの行数を大幅に減らすことができます。アイデアは明確でシンプル、シンプルで読みやすいですが、主にTkinter関数を使用して作成中です。 、これにより、プログラムのアルゴリズムもそれほど目立たなくなります。


総括する

この記事では、Tkinterを使用して簡単な計算機を開発する方法を簡単に紹介します。次のソースコードを使用して実行し、試して、デモアニメーションを添付できます。さらに、この記事に記載されているTkinterライブラリに興味がある場合は、上記のリンクを参照してください。非常に詳細です。

ダイナミックなプレゼンテーション

ソースコード

import tkinter as tk
class Calculator(tk.Tk):
    """计算器窗体类"""
    def __init__(self):
        """初始化实例"""
        tk.Tk.__init__(self)
        self.title("我的计算器")
        self.memory = 0  # 暂存数值
        self.Demo()
        
    def Demo(self):
        """Create the Demo"""
        btn_list = ["C", "(", ")", "/",
                    "7", "8", "9", "*",
                    "4", "5", "6", "-",
                    "1", "2", "3", "+",
                    "+/-", "0", ".", "="]
        r = 1
        c = 0
        for b in btn_list:
            self.button = tk.Button(self, text=b, width=5,
                                    command=(lambda x=b: self.operate(x)))
            self.button.grid(row=r, column=c, padx=3, pady=6)
            c += 1
            if c > 3:
                c = 0
                r += 1
        self.entry = tk.Entry(self, width=21, borderwidth=3,
                              bg="light blue", font=("黑体", 11))
        self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)

    def operate(self, key):
        """press the button"""
        if key == "=":  # 输出结果
            result = eval(self.entry.get())#获取文本框输入的值(值为=)
            self.entry.insert(tk.END, " = " + str(result))#在’=‘后输出计算结果
        elif key == "C":  # 清空输入框
            self.entry.delete(0, tk.END)#将结果清零
        elif key == "+/-":  # 取相反数
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            elif self.entry.get()[0] == "-":
                self.entry.delete(0)
            else:
                self.entry.insert(0, "-")
        else:  # 其他键
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, key)

if __name__ == "__main__":
    Calculator().mainloop()

おすすめ

転載: blog.csdn.net/weixin_44120833/article/details/110467105