質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Tkinter

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

Q&A

解決済

1回答

1892閲覧

Python3 Tkinter スクロールバー

person

総合スコア223

Python 3.x

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

Tkinter

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

0グッド

0クリップ

投稿2020/09/09 12:26

TkinterのTreeViewで表を作りました。

スクロールバーのテーマをTreeViewと同じものに設定することはできますか?
(ただし、widthは30に設定する。)
また、TreeViewにインサートされているデータに対して、Excelの要領で直接セルに入力することは可能ですか?
(インサートするための登録画面を別に設けると、画面遷移したりするので使い勝手が悪いような気がしたので。)

from tkinter import ttk import tkinter as tk win = tk.Tk() win.rowconfigure(0, weight=1) win.columnconfigure(0, weight=1) style = ttk.Style() style.configure("TreeviewHeading", font=("", 30)) style.configure("Treeview", font=("", 30), rowheight="") style.theme_use("clam") tree = ttk.Treeview(win) tree["show"] = "headings" tree["columns"] = (1, 2) tree.column(1, width=200) tree.column(2, width=200) tree.heading(1, text="Data1") tree.heading(2, text="Data2") tree.grid(row=0, column=0, sticky="nsew", padx=(5, 0), pady=5) for i in range(50): tree.insert("", "end", value=("a{}".format(i), "b{}".format(i))) ysb = tk.Scrollbar(win, width=30, orient="vertical", command=tree.yview) tree.configure(yscrollcommand=ysb.set) ysb.grid(row=0, column=1, sticky="nsew", pady=5) win.mainloop()

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

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

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

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

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

guest

回答1

0

ベストアンサー

スクロールバーのテーマをTreeViewと同じものに設定することはできますか?

イメージ説明

  • ttk.Scrollbar を使います。
  • styleの configureには "Vertical.TScrollbar" を指定 arrowsize=30 としてください。
  • ※ 注意点: configure は theme_use の後に呼び出してください。

TreeViewにインサートされているデータに対して、Excelの要領で直接セルに入力することは可能ですか?

ttk.Treeview では入力に対応してません。
Entry を使い、自分で編集用の領域をセル上に表示する必要があります。

補足: Entryをセルに重ねて表示するには、place() を使う方法や Toplevel で枠なしウィンドウを開く方法があります。
何れも表示位置の座標計算は必要です。


python

1style = ttk.Style() 2style.configure("TreeviewHeading", font=("", 30)) 3style.configure("Treeview", font=("", 30), rowheight="") 4style.theme_use("clam") 5

theme_use の前の font サイズ指定は無効になってます。
しかし、正しくフォントサイズ 30を指定すると、
縦幅に収まらなくなりレイアウトは崩れてしまうので注意。
rowheightにも正しい値を設定しましょう。

投稿2020/09/13 06:47

編集2020/09/13 08:12
teamikl

総合スコア8664

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

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

person

2020/09/15 06:55

回答ありがとうございます。 以下のように変更しました。 # スタイル設定 s = ttk.Style() s.theme_use("clam") fontsize = 30 myfont = Font(size=fontsize) s.configure("Treeview.Heading", font=("",fontsize)) s.configure("Treeview", font=("",fontsize), rowheight=myfont.metrics()["linespace"]) s.configure("Vertical.TScrollbar", arrowsize=30)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問