N-1行間引きツール (SP004) 1
連休中に「N-1行間引きツール (SP004)」を作ってしまおうと取り組みました。一通り出来上がっていますが、今回は Tkinter シリーズで扱わなかった機能の部分について紹介します。
ツールの性格上、ドラッグ&ドロップが使えた方が便利なのですが、Tkinter で実現しようとすると、実行環境を選ぶなどチョット面倒なようです。ここは無理せず tkinter.filedialog と言うライブラリで作ることにしました。
タイトル画像の外観で、ヘッダー行数(H)と間引き周期(N)を入力して、選択ボタンから入力ファイルと、出力先ホルダーを選び、開始ボタンをクリックすると間引き処理を行って、新しいファイルを出力します。
出力ファイルは入力ファイル名前の末尾に H と N の値を付加した名前です。
例: H=1, N=2 の場合
入力ファイル abc.log → 出力ファイル abc_1H2.log
参考ソース
これまで Tkinter シリーズで紹介してこなかった機能は、ファイル選択とフォルダー選択で、次のようなコードです。
まずはインポート
import os
import tkinter as tk
import tkinter.filedialog
デフォルトのディレクトリを取得するために、os が必要です。
必須のTkinter。
tkinter.filedialog がファイル選択とフォルダー選択の機能(ウィンドウ)を提供してくれます。
<<< 2つの選択ボタン >>>
入力ファイル選択ボタン
self.buttonfi = tk.Button(frame1,text="選択", width=5, height=1, bg="lightgray", command=self.selfi)
# frame1 内に幅3、高さ1(単位?)のbutton1インスタンスを生成
self.buttonfi.place(x=320,y=12) # button1インスタンスを配置 pixcel 単位で位置指定
ボタンを押すと self.selfi( ) を呼びます。
出力フォルダー選択ボタン
self.buttonfo = tk.Button(frame1,text="選択", width=5, height=1, bg="lightgray", command=self.selfo)
# frame1 内に幅3、高さ1(単位?)のbutton1インスタンスを生成
self.buttonfo.place(x=320,y=62) # button1インスタンスを配置 pixcel 単位で位置指定
ボタンを押すと self.selfo( ) を呼びます。
<<< 選択機能(別ウィンドウ)>>>
self.selfi( )
def selfi(self): # 入力ファイル選択
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(__file__))
fi = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
self.labelfi["text"] = fi
ファイル選択です。
self.selfo( )
def selfo(self): # 出力フォルダ選択
iDir = os.path.abspath(os.path.dirname(__file__))
fo = tkinter.filedialog.askdirectory(initialdir = iDir)
self.labelfo["text"] = fo
フォルダー選択です。
これだけで、見慣れた感じの別ウィンドウで選択が可能でした。
次回はもう少し詳しい使い方と一緒に、全ソースコードをダウンロード可能にして紹介したいと思います。
何等かお役に立てれば幸いです。
出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。