質問するログイン新規登録
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

1381閲覧

Python3 Tkinter 結合ヘッダなどがあるTreeviewについて

person

総合スコア224

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2022/09/17 02:05

0

0

前提、実現したいこと

次のような表をTreeviewで表現したいです。

イメージ説明

質問

確認ですが、こういったヘッダの結合や複数行にわたるヘッダ、部分行の指定などは現在のTkinterではサポートされていないですよね。

現在のTkinter(8.6)で表現するとしたら、Treeviewを2つ作って並べるしかないのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

確認ですが、こういったヘッダの結合や複数行にわたるヘッダ、部分行の指定などは現在のTkinterではサポートされていないですよね。

ttk.Treeview のソースコード (ライブラリ内部Tcl言語)を読んで確認したことがありますが、
その認識で間違いありません。

現在のTkinter(8.6)で表現するとしたら、Treeviewを2つ作って並べるしかないのでしょうか。

簡易的な実装なら、グループ毎に並べるその方法が一番楽だと思います。
他案は、1つのTreeview 上にラベルを並べて column グループ毎にラベルの 幅に揃えるという方法もあります。

但し、Treeview をテーブル・ウィジェットとして利用する際の制限としては、
例えば「列の選択」等が出来ないことに注意してください。※「行の選択」は可能です。
予めテーブルとしての機能が必要と分かっている場合は、
用途に適したライブラリを選定した方が良い場合もあります。

  • 外部ライブラリを使う (tktable, tksheet, 辺り。古いものが多いので同名別ライブラリや保守期限に注意)
  • tcl/tk のライブラリを使う (原理的には可能ですが、Pythonから使う際の情報は少ない。ライブラリは tcl のwikiに情報アリ)
  • 独自に描画する (Canvas 上に、必要な行のみを描画する。他ライブラリが実装している方法。
    1から自分で作る事になるので、作業量が多)

投稿2022/09/17 08:52

teamikl

総合スコア8824

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

person

2022/09/29 05:05

ありがとうございます。 やはり、並べて作った方が簡単そうなので、この方法で実装します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問