tkinter实现界面显示
‘’’’’’
def AFLogAnalysisShow(self,keyword,content):
print(“keyword:%s”%keyword)
ShowLogWin = tk.Tk()
ShowLogWin.title(“Show Logs”)
ShowLogWin.geometry(“1000x600”)
winMainFrame = tk.Frame(ShowLogWin)
winMainFrame.pack(side=tk.LEFT,fill=tk.Y)
winYScroll = tk.Scrollbar(winMainFrame)
winYScroll.pack(side=tk.RIGHT,fill=tk.Y)
winXScroll = tk.Scrollbar(winMainFrame,orient=tk.HORIZONTAL)
winXScroll.pack(side=tk.BOTTOM,fill=tk.X)
winText = tk.Text(winMainFrame, width=800, height=600,xscrollcommand=winXScroll.set,yscrollcommand=winYScroll.set)
winXScroll.config(command=winText.xview)
winYScroll.config(command=winText.yview)
winText.pack(expand=tk.YES,side=tk.TOP, fill=tk.Y)
winText.tag_config("tag1",background="yellow")
winText.insert('insert', content)
ShowLogWin.mainloop()
路过的各位大咖们,小弟想实现:在text窗口中显示content内容,并且高亮显示keyword,但按照上面的代码执行结果,水平滚动条无法显示,并且没能实现高亮显示功能,还望各位大咖指教,感谢!
你的代码执行结果, 不管是垂直或水平的滚动条, 应该都有显示的.
如果你是指水平滚动条无法滚动, 那是因为TEXT窗口的内容如果太长就会被自动移到下一行, 所以右边没有内容, 也就不能往右滚动.
如果不想自动移到下一行, 在TEXT的参数中加上
wrap=tk.NONE
就可以了.还有在TEXT的参数
width=800
以及height=600
, 你可能把它们的单位视为点素, 应该是字寛及行数.你有设定了
tag1
为背景黄色, 但是在插入字符串时, 没有指定*tags
, 所以才没有高亮显示.如果要把内容中, 特定的字符串高亮, 简单的搜索可以字符串直接标示, 复杂的必须使用 Tcl 的正则式来表示. 注意, 在此的代码是针对全部的内容, 不是插入新的内容, 因此 Widget 内容每次更新, 必须重新调用一次, 内容越多, 速度越慢.
你可以撰写新的函数, 针对新插入的内容来处理, 这样就比较不会影响到速度, 不过新旧内文拼接的部份, 就不会被考虑是被要求要高亮的内容.
以下代码未经完全验证, 如有错误请自行更正 …
@Jason990420 非常感谢,在text的参数中加上wrap=tk.NONE确实是可以实现水平滚动条效果了,但高亮显示可能您没理解我的意思,例如下面这段内容中: af_mgr_v3: Acce preTS(90669467455275) TS(90669507175643) Info( 9 967 48)/Gyro preTS( 0) TS( 0) Info( 0 0 0)/ Gyro VectorValue( 0) 151 D Hal3ARaw_thread: [onAFThreadLoop] sttNum(#0) FV(2058435) DAC(345) Gyro(0, 0, 0) ROI(0,1,1640,1140,2360) 12-24 15:37:56.057978 31577 31784 D ae_mgr : Gyro InValid! 我希望实现的是:所有的Gyro都能高亮显示,其他字符普通显示即可,不知道这个功能是否可以实现,感谢!
没任何回应,也没打钩?这个问题解决了吗?
谢谢,此问题已经解决,感谢!