スクロールバーに少し問題がありました。機能的にはすべて正常に機能しています。スクロールバーが表示され、テキストウィジェットへの挿入やスクロール操作に反応します。しかし、アプリケーションの開始直後に、すべてのスクロールバーの矢印ボタンは、アプリケーションウィンドウのサイズを変更するまでグレー表示されます。グリッド設定でフレームに関する基本的な問題はありますか? Upper Left(UL)、Upper Right(UR)、Lower Left(LL)、Lower Right(LR)の4つに分かれています。Python Tkinterのスクロールバーの矢印がグレー表示されました
import Tkinter
from Tkinter import *
class findhash_tk(Tkinter.Tk):
def __init__(self, parent):
Tkinter.Tk.__init__(self, parent)
self.parent = parent
self.initialize()
def initialize(self):
self.frameUL = Tkinter.LabelFrame(self, text="Upper left")
self.frameUL.grid(row=0, column=0, sticky=W+E+N+S, padx=2, pady=2)
self.frameUR = Tkinter.LabelFrame(self, text="Upper right")
self.frameUR.grid(row=0, column=1, sticky=W+E+N+S, padx=2, pady=2)
self.frameLL = Tkinter.LabelFrame(self, text="Lower left")
self.frameLL.grid(row=1, column=0, sticky=W+E+N+S, padx=2, pady=2)
self.frameLR = Tkinter.LabelFrame(self, text="Lower right")
self.frameLR.grid(row=1, column=1, sticky=W+E+N+S, padx=2, pady=2)
self.scrollbarUR = Tkinter.Scrollbar(self.frameUR, orient='vertical')
self.scrollbarUR.grid(row=0, column=1, sticky=N+S)
self.textBoxUR = Tkinter.Text(self.frameUR)
self.textBoxUR.config(yscrollcommand=self.scrollbarUR.set)
self.textBoxUR.grid(row=0, column=0, sticky=W+E+N+S)
self.scrollbarUR.config(command=self.textBoxUR.yview)
self.scrollbarLLV = Tkinter.Scrollbar(self.frameLL, orient='vertical')
self.scrollbarLLV.grid(row=0, column=1, sticky=N+S)
self.scrollbarLLH = Tkinter.Scrollbar(self.frameLL, orient='horizontal')
self.scrollbarLLH.grid(row=1, column=0, sticky=W+E)
self.textBoxLL = Tkinter.Text(self.frameLL)
self.textBoxLL.config(wrap="none", yscrollcommand=self.scrollbarLLV.set, xscrollcommand=self.scrollbarLLH.set)
self.textBoxLL.grid(row=0, column=0, sticky=W+E+N+S)
self.scrollbarLLV.config(command=self.textBoxLL.yview)
self.scrollbarLLH.config(command=self.textBoxLL.xview)
self.scrollbarLRV = Tkinter.Scrollbar(self.frameLR, orient='vertical')
self.scrollbarLRV.grid(row=0, column=1, sticky=N+S)
self.scrollbarLRH = Tkinter.Scrollbar(self.frameLR, orient='horizontal')
self.scrollbarLRH.grid(row=1, column=0, sticky=W+E)
self.textBoxLR = Tkinter.Text(self.frameLR)
self.textBoxLR.config(wrap="none", yscrollcommand=self.scrollbarLRV.set, xscrollcommand=self.scrollbarLRH.set)
self.textBoxLR.grid(row=0, column=0, sticky=W+E+N+S)
self.scrollbarLRV.config(command=self.textBoxLR.yview)
self.scrollbarLRH.config(command=self.textBoxLR.xview)
for x in range(50):
self.textBoxUR.insert(END, str(x) + "\n")
for x in range(50):
self.textBoxLL.insert(END, str(x) + "\n")
for x in range(50):
self.textBoxLR.insert(END, str(x) + "\n")
if __name__ == "__main__":
app = findhash_tk(None)
app.title('Test App')
app.mainloop()
下記の 'self.update()'を使ってみましたが、うまくいきませんでした。 提案する場所に置くと、「LL」の水平スクロールバーの矢印がグレーになります。 – ManuMeadow
両方の水平スクロールバー(下が右下ですか?)は灰色で表示されます。スクロールするものは何もありません。この動作を変更しますか? – kabanus
いいえ、まったくありません。しかし、あなたのソリューションでは、すべての矢印が黒く表示され、右下の水平バーも矛盾しています。左下のものだけがグレーのままです。 – ManuMeadow