Python Tkinter滚动条问题

2024-03-29 09:00:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到了一个奇怪的行为和例外的Tkinter滚动条。 我的GUI基本上使用一个Tkinter文本小部件,它与滚动条相关/引用。在

    self.textFrame = Tkinter.LabelFrame (self.mainFrame,padx=0,pady=0,width=200,height=100)
    self.textFrame.grid(row=5, column =1, sticky = "NW", padx = 5, pady = 10)
    self.consLable = Tkinter.Label (self.textFrame,text = "Log-Console:",font ="Verdana 8 bold")
    self.consLable.grid (row =6,column =1, sticky = "NW", padx = 5, pady = 1)
    self.consText= Tkinter.Text(self.textFrame, wrap = "word")
    self.consText.grid(row =7,column =1, rowspan =4)
    self.consText.tag_configure("stderr", foreground="#b22222")
    self.scrollText= Tkinter.Scrollbar(self.textFrame,command = self.consText.yview)
    self.scrollText.grid(row =7,column =2,rowspan =4,sticky='NSEW')
    self.consText.config(yscrollcommand = self.scrollText.set)

    # Referencing output location of the console "print or sys.stderr" methods
    sys.stdout = gemeindesteckbrief__SupportTools__.TextRedirector(self.consText, "stdout")
    sys.stderr=  gemeindesteckbrief__SupportTools__.TextRedirector(self.consText, "stderr")

在文本小部件中,python控制台条目使用sys.stdoutsys.stderr插入。为了插入文本,需要使用一个支持类来重写.sys.stderr.writeprint方法,并将文本写入Tkinter文本小部件。在

^{pr2}$

将文本插入文本小部件可以正常工作,也可以单击小部件并使用鼠标滚轮滚动,也可以使用滚动条的向上和向下按钮工作。所有的麻烦都是从使用吧台开始,试图上下滑动。结果是一个TclError:期望浮点数,但得到“00028”

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python26\ArcGIS10.0\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\Python26\ArcGIS10.0\lib\lib-tk\Tkinter.py", line 3156, in yview
self.tk.call((self._w, 'yview') + what)
TclError: expected floating-point number but got "0,0028"

Tags: 文本self部件tkinterlibstderrsyscolumn
1条回答
网友
1楼 · 发布于 2024-03-29 09:00:09

所以,我找到了一种解决问题的方法 Tkinter似乎在多线程方面有问题。 所以我把Tkinter.Scrollbar改成了ttk.Scrollbar。 ttk模块是Tkinter的扩展版本,它解决了一些 Tkinter模块的怪异行为。在

http://docs.python.org/3.1/library/tkinter.ttk.html

在更改了小部件的模块后,一切都按预期工作!在

这个解决方案只是解决实际问题的一个解决办法,但它是有效的!!

相关问题 更多 >