【Flet】よく使う単語のコピー用ボタン集をつくる【Python】
よく使う単語のコピー用ボタン集をつくる
ちょくちょく使う面倒なテキスト入力をまとめておき、ボタンのクリックでコピーする方法です。
クリップボードに情報をコピーする
ボタンに設定されている情報をコピーする
概要
- ボタンクリックでテキスト情報をクリップボードにコピーする
import flet as ft def main(page: ft.Page): # クリップボードにテキストをコピーする関数 def copy_to_clipboard(e): text = e.control.text page.set_clipboard(text) page.snack_bar = ft.SnackBar(ft.Text(f'Copied {text} to clipboard')) page.snack_bar.open = True page.update() # ボタンを作成 sample_button = ft.ElevatedButton(text='りんご', on_click=copy_to_clipboard) # ボタンをページに追加 page.add(sample_button) # アプリを実行 ft.app(target=main)
クリックでクリップボードに情報をコピーするボタンを複数配置する
処理内容
- カレントディレクトリにあるExcelファイルを読み込む
- 読み込んだテキスト情報を持つボタンを作成する
- このボタンをクリックするとテキスト情報がクリップボードにコピーされる
Excelファイル
- ファイル名:data.xlsx
- A,Bの2列×複数行で入力し、この行は可変とする
コード
import flet as ft import pandas as pd def main(page: ft.Page): # ページ全体のレイアウト page.window_width=400 page.window_height=600 page.scroll=True # クリップボードにテキストをコピーする関数 def copy_to_clipboard(e): text = e.control.text page.set_clipboard(text) page.snack_bar = ft.SnackBar(ft.Text(f'Copied {text} to clipboard')) page.snack_bar.open = True page.update() # Excelファイルからデータを読み込む df = pd.read_excel('data.xlsx', usecols='A,B', header=None, dtype=str) # ボタンを表示するためのリスト buttons = [] # データフレームの各行からボタンを作成し、リストに追加 for index, row in df.iterrows(): col_a_button = ft.ElevatedButton(text=row[0], on_click=copy_to_clipboard) col_b_button = ft.ElevatedButton(text=row[1], on_click=copy_to_clipboard) buttons.append(ft.Row([col_a_button, col_b_button])) # ページにボタンを追加 for row in buttons: page.add(row) # アプリを実行 ft.app(target=main)