LoginSignup
0
2

はじめに

こんにちは!今回は、PythonでGUIアプリケーションを作成する際に便利な「モーダレスウィンドウ」の実装方法について解説します。

モーダレスウィンドウとは?

モーダレスウィンドウとは、メインウィンドウとは独立して操作できるウィンドウのことです。モーダルウィンドウとは異なり、モーダレスウィンドウはメインウィンドウの操作を妨げません。

image.png

実装方法

今回は、PythonのGUIライブラリとして広く使われているtkinterを使用して実装します。

import tkinter as tk
from tkinter import ttk

class MainWindow:
    def __init__(self, master):
        self.master = master
        self.master.title("メインウィンドウ")
        self.master.geometry("300x200")

        self.button = ttk.Button(self.master, text="モーダレスウィンドウを開く", command=self.open_modeless)
        self.button.pack(expand=True)

    def open_modeless(self):
        ModelessWindow(self.master)

class ModelessWindow(tk.Toplevel):
    def __init__(self, master):
        super().__init__(master)
        self.title("モーダレスウィンドウ")
        self.geometry("250x150")

        label = ttk.Label(self, text="これはモーダレスウィンドウです")
        label.pack(expand=True)

if __name__ == "__main__":
    root = tk.Tk()
    app = MainWindow(root)
    root.mainloop()

コードの説明

  1. MainWindowクラス:

    • メインウィンドウを表します。
    • ボタンを配置し、クリックするとモーダレスウィンドウを開きます。
  2. ModelessWindowクラス:

    • tk.Toplevelを継承してモーダレスウィンドウを作成します。
    • 単純なラベルを配置していますが、必要に応じて様々なウィジェットを追加できます。
  3. open_modelessメソッド:

    • ボタンクリック時に呼び出され、新しいModelessWindowインスタンスを作成します。

実行結果

このスクリプトを実行すると、まずメインウィンドウが表示されます。「モーダレスウィンドウを開く」ボタンをクリックすると、新しいウィンドウが開きます。このモーダレスウィンドウは、メインウィンドウとは独立して操作可能です。

まとめ

Pythonのtkinterライブラリを使用することで、簡単にモーダレスウィンドウを実装できます。この方法は、複数のウィンドウを同時に操作する必要があるアプリケーションの開発に非常に有用です。

モーダレスウィンドウの利点:

  • メインウィンドウの操作を妨げない
  • 複数のタスクを同時に処理できる
  • ユーザーインターフェースの柔軟性が向上

ぜひ、あなたのアプリケーションにモーダレスウィンドウを取り入れて、ユーザビリティを向上させてみてください!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2