goo blog サービス終了のお知らせ 

CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

ボタンを押すとランダムにコンポーネントが増えるPydroidプログラム

2025-04-12 15:00:33 | python
GUIプログラム作成練習









以下は、ボタンを押すとランダムなコンポーネント(ラベル、ボタン、エントリー)が増えるTkinterを使ったPydroid用のプログラムです。

```python
import tkinter as tk
from tkinter import ttk
import random

class RandomComponentApp:
def __init__(self, root):
self.root = root
self.root.title("ランダムコンポーネント生成")
# メインフレーム
self.main_frame = ttk.Frame(root, padding="10")
self.main_frame.pack(fill=tk.BOTH, expand=True)
# 生成ボタン
self.generate_button = ttk.Button(
self.main_frame,
text="コンポーネントを生成",
command=self.generate_component
)
self.generate_button.pack(pady=10)
# コンポーネントを配置するフレーム
self.components_frame = ttk.Frame(self.main_frame)
self.components_frame.pack(fill=tk.BOTH, expand=True)
# 生成したコンポーネントを保持するリスト
self.components = []
def generate_component(self):
"""ランダムなコンポーネントを生成する"""
component_type = random.choice(["label", "button", "entry"])
if component_type == "label":
colors = ["red", "blue", "green", "orange", "purple"]
text = f"ラベル {len(self.components)+1}"
label = ttk.Label(
self.components_frame,
text=text,
foreground=random.choice(colors)
)
label.pack(pady=5)
self.components.append(label)
elif component_type == "button":
button = ttk.Button(
self.components_frame,
text=f"ボタン {len(self.components)+1}",
command=lambda b=len(self.components): self.button_clicked(b)
)
button.pack(pady=5)
self.components.append(button)
elif component_type == "entry":
entry = ttk.Entry(self.components_frame)
entry.pack(pady=5, fill=tk.X)
entry.insert(0, f"エントリー {len(self.components)+1}")
self.components.append(entry)
def button_clicked(self, index):
"""生成されたボタンがクリックされた時の処理"""
print(f"ボタン {index+1} がクリックされました")

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

### プログラムの説明:
1. **メインウィンドウ**には「コンポーネントを生成」ボタンがあります
2. ボタンを押すと、ランダムで以下のいずれかのコンポーネントが追加されます:
- **ラベル**: ランダムな色のテキストラベル
- **ボタン**: クリックするとコンソールにメッセージを表示するボタン
- **エントリー**: 初期テキストが入った入力欄
3. 生成されたコンポーネントは縦に並んで表示されます

### Pydroidでの実行方法:
1. Pydroid 3アプリを開く
2. 新しいファイルを作成し、上記のコードを貼り付ける
3. 実行ボタンを押してプログラムを起動する

このプログラムはTkinterのttk(Themed Tkinter)を使用しているため、Pydroid上でも見た目が整ったUIで表示されます。


最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。