Python(Tkinter)でウィンドウのスクリーンショットを撮る方法
Pythonには豊富なモジュールや関数が用意されており、多機能なアプリケーションを構築・開発できます。中でもTkinterは、GUIベースのアプリケーション作成に広く利用されている有名なPythonライブラリです。ウィンドウのスクリーンショットを撮影するアプリケーションを開発したい場合も、Tkinterを使えばGUI部分を簡単に構築できます。
この記事では、以下のステップに沿ってアプリケーションの仕組みを解説します。
必要なライブラリ – 画像処理用の Pillow(PIL)、およびファイル名のランダム化やエポック時間の処理に使用するPython標準の timeモジュール。さらに、画面キャプチャのために pyautogui を利用します。
ウィンドウ内に Label ウィジェットを作成し、スクリーンショット撮影用の Button を追加します。
screenshot() 関数を定義し、画面のスクリーンショットを撮影してローカルディレクトリに保存できるようにします。
撮影した画像にTkinterウィンドウ自体が写り込まないようにするには、withdraw() 関数を使ってウィンドウを一時的に非表示にします。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
import time
from PIL import ImageTk, Image
import pyautogui as pg
# tkinterのフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウサイズを設定
win.geometry("700x350")
# スクリーンショットを撮る関数を定義
def screenshot():
random = int(time.time())
filename = "C:/Users/Sairam/Documents/" \ + str(random) + ".jpg"
ss = pg.screenshot(filename)
ss.show()
win.deiconify()
def hide_window():
# スクリーンショット撮影中はtkinterウィンドウを非表示にする
win.withdraw()
win.after(1000, screenshot)
# Labelウィジェットを追加
Label(win, text="Click the Button to Take the Screenshot", font=('Times New Roman', 18, 'bold')).pack(pady=10)
# スクリーンショット撮影用のButtonを作成
button = Button(win, text="Take Screenshot", font=('Aerial 11 bold'), background="#aa7bb1", foreground="white", command=hide_window)
button.pack(pady=20)
win.mainloop()
実行結果
上記のコードを実行すると、ボタンとラベルテキストが表示されたウィンドウが立ち上がります。

ボタンをクリックすると、ウィンドウが一瞬非表示になった後、画面全体のスクリーンショットが撮影され、指定したローカルディレクトリに保存されます。保存された画像は自動的に開かれて表示されます。

-
Python Tkinterでルートウィンドウを非表示・破棄する2つの方法
Tkinterアプリケーションのテスト中に、デフォルトのウィンドウやフレームを一時的に隠したい、あるいは完全に閉じたいという場面に遭遇することがあります。Tkinterでは、withdraw()メソッドによる「非表示」と、destroy()メソッドによる「破棄」の2つのアプローチが用意されています。mainloop()とウィンドウのライフサイクルmainloop()は、外部イベントによってウィンドウが閉じられるまで、Tkinterアプリケーションを実行し続ける役割を担います。このメインループが動作している間、ウィンドウは画面上に表示され続けます。ウィンドウを完全に破棄(終了)したい場合は、de
-
Python Tkinterで作る簡単な登録フォーム入門
Tkinterは、GUI(グラフィカルユーザーインターフェース)を開発するためのPython標準ライブラリです。Tkinterを使うことで、ウィンドウをはじめとするさまざまなUI(ユーザーインターフェース)要素を持つデスクトップアプリケーションを作成できます。推奨されているPython 3.xを使用している場合、TkinterはPythonに標準搭載されているパッケージなので、追加のインストールは一切不要です。この記事では、まずTkinterの基本的なGUIアプリケーションの作り方を解説し、その後、実際の登録フォームやローン金利計算ツールといった実用的な例まで段階的に見ていきます。シンプルなG