Python初心者がブログの検索順位取得ツールを作っています。
キーワードを検索する、ある程度の機能は作成できたので、これからは操作画面(GUI)を作っていきます。
「PythonでGUIが作成できるの?」っていう完全初心者ですが、1時間もなく今回のプログラムは作成できています。
今回は作成したい操作画面の機能のうち、ファイルを選択する機能を作成してみます。
「tkinter」というモジュールを使い、深く考えず作ってみました。

作りたい画面
ブログの検索順位を取得して、プロットを作成する作業をGUIで操作できるようにしたいと考えています。
ざっくりと考えた画面案はこちら。

概要は、
「ファイル選択」ボタンでブログ検索キーワードや過去の順位が書き込まれたExcelファイルを選択する。
「ブログ順位取得」ボタンでキーワードをGoogle検索する。
中央の欄に検索キーワードと順位を表示する。
右側にスライドバーを設置。
検索キーワードの左側にはチェックボックスを配置し、チェックがあるキーワードについてグラフが作成されるようにする。
チェックボックスは「すべて選択」「選択解除」で操作可能にする。
「グラフ作成」ボタンでチェックがあるキーワードのプロットを作成する。
こんな感じのツールにしたいなぁ。
VBAならこのくらいのGUIを作るのは簡単なのですが、勉強のためPythonでやってみます。
tkinterでファイル選択ダイアログを表示するソースコード
PythonでGUIを作成するのに、標準でインストールされている「tkinter」があるので、それを使用してみます。
まずは「ファイル選択」ボタンの機能を作ってみます。
ボタンをクリックしたらファイル選択ダイアログが表示され、選んだファイルのパスを取得する機能です。
import os
import tkinter
from tkinter import messagebox
from tkinter import filedialog
root = tkinter.Tk()
root.title('ブログ検索順位取得ツール') #タイトル
root.geometry('400x200') #サイズ 横x縦
#selctボタンを押したときの処理
def select_click():
messagebox.showinfo('select','ブログ検索順位のExcelファイルを選択してください')
fileType = [('Excelファイル','*.xlsx')] #ファイルタイプをExcelファイルに指定
iniDir = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
filepath = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir)
messagebox.showinfo('選択したファイル',filepath)
#ボタンを作成
selectButton = tkinter.Button(root, text='File Select',command=select_click)
selectButton.pack()
#ウィンドウを動かす
root.mainloop()
いろいろなサイトを参考にしながら作りました。(なので説明ができない・・・)
ファイル選択ダイアログのコードはVBAやC#に似ていて、ファイルタイプと初期表示フォルダを設定してあげます。
ファイルタイプはExcelファイルを指定。
初期表示フォルダは、このソースコードがあるフォルダにしてあります。
ボタンの設置で「pack()」するのが慣れないというか、最初は見落としていました。
画面操作でボタンの位置や大きさを設定できないのが辛いですね。
実行結果
tkinterを使って作ってみたファイル選択をする上記のプログラムを実行してみます。




はい、きちんとボタンが機能し、ファイル選択ダイアログが表示され、選択したファイルのパスを取得できました。
次回は選択したファイルからキーワードや順位を取得して、そのリストをGUI画面に表示してみたいと思います(実現可能かは不明)。
PythonでGUI、長くなりそうな予感・・・
んじゃ、また~
おススメのプログラミング独学方法はこちらの記事にまとめました!

コメント