![](/img/trans.png)
[英]How can I put a wx.ScrolledWindow inside a wx.SplitterWindow?
[英]I want to know how to put continuous values in wx.ScrolledWindow
我想使用for语句将wx.panel
输出输出到滚动wx.panel
,但是仅输出最后100个值。 我想知道该怎么办,我可以在常规面板中累积值吗? 而且我想知道如何在不使用SetScrollbars
方法的情况下自动滚动。
import wx
class test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
main = wx.ScrolledWindow(self)
main.SetScrollbars(10,10,10,10)
for i in range(1,101):
print(i)
wx.StaticText(main, label=str(i))
if __name__ == '__main__':
app = wx.App()
frame = test()
frame.Show(True)
app.MainLoop()
我还有其他问题。 如何将顺序从1反转为100,再从100反转为1?
wx.TextCtrl是否也具有反向功能? 最后,我想知道是否需要执行转换工作才能将Oracle RTF语句输出到wx.TextCtrl。
Oracle RTF:
{\ rtf1 \ ansi \ ansicpg949 \ deff0 \ deflang1033 \ deflangfe1042 {\ fonttbl {\ f0 \ fnil \ fcharset129 \ 'b1 \' bc \ 'b8 \' b2 \ 'c3 \' bc;}}
{\ Colortbl; \ red0 \ green0 \ blue0;}
\ Viewkind4 \ p1 \ pard \ cf1 \ lang1042 \ f0 \ fs20 vulva - marked improved
\ Par \ cf0 \ fs20
\ Par}
再次感谢你。
我不相信您想要wx.ScrolledWindow
实现您的目标。
尝试这个:
import wx
import time
class test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.panel = wx.Panel(self, wx.ID_ANY)
self.log = wx.TextCtrl(self.panel, wx.ID_ANY, size=(300,400),
style = wx.TE_MULTILINE|wx.TE_READONLY|wx.VSCROLL)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.log, 1, wx.ALL|wx.EXPAND, 5)
self.panel.SetSizer(sizer)
self.Show()
for i in range(1,101):
self.log.AppendText(str(i)+"\n")
self.log.ShowPosition(-1)
self.panel.Update()
time.sleep(0.1)
wx.Yield()
if __name__ == '__main__':
app = wx.App()
frame = test()
app.MainLoop()
可以说,不需要sizer,但是您可能想要添加一些控制按钮,例如Stop
以后Stop
,有了sizer,您就可以这样做。
通过调用Yield
,您可以查看循环过程中发生的情况,并可以在将来单击“ Stop
按钮。
要将呼叫time.sleep
是那里才慢下来,并ShowPosition
保持在焦点添加的最后一个项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.