我想用for语句输出1~100输出到滚动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()
我还有其他问题。如何以100到1的顺序将顺序从1反转为100?
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}
再次感谢你。
答案 0 :(得分:1)
我不相信你想要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()
来实现你的目标
试试这个:
Stop
可以说,sizer不是必需的,但您可能希望在以后添加一些控制按钮,例如Yield
,这样可以让sizer允许您这样做。
通过Stop
调用,您可以查看循环过程中发生的情况,并可以在将来点击time.sleep
按钮。
拨打ShowPosition
只会降低速度,function clearAllButton(){
clearAll();
printId();
if(markEdit){
markEditRow.classList.toggle("blue");
markEditRow=undefined;
markEdit=false;
}
var fields1 = document.getElementsByClassName("red");
Array.prototype.forEach.call(fields1,function(e){
console.log(fields1, fields1.length);
e.classList.toggle("red");
var id = e.getElementsByTagName('td')[0].innerHTML;
itemOperations.markRecord(id);
});
printTotalRecords();
}
会将最后一项添加到焦点中。