投稿

【Python・tkinter】Comboboxのフィールドとドロップダウンリストの色の指定・変更方法

イメージ
はじめに 上記画像の通り、tkinterでJ1・J2・J3の順位表GUIアプリを制作したが、Comboboxと表がデフォルトのままなのが寂しくなり、 色を変更しようと 思い立つ。 表の方は、全くややこしくない。 ところが、 Comboboxの色変更はちょっとややこしいこと になっている。 そこのところを解説してみる。 表の色変更 表の色変更は以下の通り、ヘッダーのスタイルと各行のスタイルを設定したコードに各々backgroundやらforegroundやらを追加して色指定したら完成。 # 表のスタイル設定 Style.configure("Treeview.Heading", font=("Yu Gothic UI", 12, "bold"), padding = (0,7,0,7), background = Orange, foreground = White, borderwidth = 0) # ヘッダーのスタイル Style.configure("Treeview", font=("Yu Gothic UI", 14), rowheight = 40, foreground = Kon) # 各クラブのスタイル ︙ ︙ # tagが奇数(レコードは偶数)の場合のみ、背景色の設定 Tree.tag_configure(j, background = Pale_Orange) 以上。 全体のコードは以下をご覧あれ。 PythonのtkinterでJ1・J2・J3の順位表GUIアプリの制作とComboboxで順位表切り替え方法【Docker & Jupyterlab環境】 PythonのtkinterでJリーグの順位表をスクレイピングして表示させるGUIアプリを制作してみた結果、Comboboxの切り替えで別リーグの順位表に切り替わる方法が判明したのでその報告。 blog.eszett-design.com Comboboxの色変更 実は、 色指定しなければならない箇所が意外に多い 。 なので、少々細かいが、1つずつ解説していく。 Comboboxのデフォルト 色指定していない状態。 f

PythonのtkinterでJ1・J2・J3の順位表GUIアプリの制作とComboboxで順位表切り替え方法【Docker & Jupyterlab環境】

イメージ
はじめに いつの間にか始まっていたJリーグ。 以前スクレイピングを検索した時に、実例としてJリーグの順位表を取得していたので、それを真似てみようと思い立ったが、色々問題が起こったのでその解決とともに順位表アプリの制作方法を解説していく。 ここで分かること・出来ること Docker Container内の日本語化 J1・J2・J3の順位表のスクレイピング Comboboxでのイベント処理(表の切り替え) CanvasにJPG画像表示 Treeviewで作成の表で、1行おきに行の色を設定 開発環境 Python、およびそのモジュールは、Docker内に環境を整備し、Jupyterlabで操作していく。 マシン: MacBook Pro OS: macOS Big Sur (11.6.4) 仮想環境: Docker Desktop (4.5.0 (74594)) エディタ: JupyterLab (3.3.0)、 Sublime Text (Build 4126) XQuartz :2.8.1 python :3.8.10 tkinter :8.6.10 requests :2.22.0 beautifulsoup4 :4.10.0 階層構造 ファイルのディレクトリは以下の通りに予め設定。 desktop └python_webscrapingフォルダ      ├Docker Composeファイル      ├Dockerfile      └workフォルダ └pythonファイル(jupyterlabで作成・編集) Xquartzの導入と設定 上記に追加で、 予めXquartzの導入と設定が必要 になる。 導入および設定の方法は、下記エントリの『 1 MacにXQuartzをインストール 』および『 2 XQuartzの環境設定を開く 』をご覧あれ。 MacでPythonのGUIライブラリをDocker Container内のJupyterlabから稼働させる方法 DockerのContainerに構築したPython環境ではJupyterlabからTkinterが動きませんが、ある方法で動かす