PR

はじめてのTkinter

この記事では、マイコンをpyserialで制御する方法をまとめます。

姫野秀徳

組み込みエンジニアとしてメーカー勤務10年。
第二種電工事士、基本情報技術者、Code.org認定教師。
microbitを用いた電子工作&プログラミング教室を開校。
組み込み開発の実際を発信するyoutube活動も行う。

無料で学べる組み込み開発オンラインスクールはじめました!
https://kumicla.tatepro.com

姫野秀徳をフォローする

Tkinterとは

pyserialは、Python言語用のシリアル通信ライブラリです。

pyserialを使うと、Pythonプログラムからシリアルポートを開いたり、データを送受信したりすることができます。

環境構築

パソコンにpyserialをインストールする必要があります。

sudo apt-get install python3-tk
sudo apt install python3-pip

サンプルコード

はじめにサンプルを示します。

import tkinter as tk

def button_click():
    label.config(text="Button Clicked")

root = tk.Tk()
root.title("Simple GUI")

# ウィンドウサイズを設定
root.geometry("400x300")

label = tk.Label(root, text="Hello, World!")
label.pack()

button = tk.Button(root, text="Click Me", command=button_click)
button.pack()

root.mainloop()

んー、かなり簡単な記述で処理できるんですねえ。

つまずいたポイント

以下、設計でつまずいた点。

packやconfigなど表示処理が直ちに反映されない

def func():
    label.config(text="aaa")
    btn.pack_forget()
    while True:
        #なにかする
        break

上記のような処理があった場合、whileを抜けないとconfigやpack_forgetが画面上に反映されませんでした。

どうも、こうしたイベント発生は処理を抜けた後のmainloop()にて制御されているようです。

処理の後直ちに反映させるにはupdate関数を用います。

def func():
    label.config(text="aaa")
    label.update()
    btn.pack_forget()
    btn.update()
    while True:
        #なにかする
        break

updateを入れてやることで、直ちにイベント発生して画面に反映されました。

この内容が良いと思ったら、いいね💖を押して教えてください!

組みクラ – 組み込み開発を学び、未来を創るエンジニアへ
無料で学べる!組み込み開発の基礎から応用までをマスターできるオンラインスクール「組みクラ」

組み込みエンジニアは、あらゆる産業の基盤を支える重要な職業です。
私たちタテプロは、次世代の組み込みエンジニアを育成し、業界の競争力を高めるために活動しています。
あなたも、無料で学べる「組みクラ」で、組み込み開発のスキルをしっかり身につけ、キャリアを加速させましょう!
今すぐ学び始めて、将来の自分をステップアップさせる第一歩を踏み出しませんか?

\立プロとLINEで友だちになりませんか/
立プロと友だちになる
python
シェアしていただけると嬉しいです!

コメント

タイトルとURLをコピーしました