見出し画像

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

フォルダー選択です。

これだけで、見慣れた感じの別ウィンドウで選択が可能でした。



次回はもう少し詳しい使い方と一緒に、全ソースコードをダウンロード可能にして紹介したいと思います。

何等かお役に立てれば幸いです。




出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。