我假设这可以用多行文本框,但不知道如何去做。我想要做的是在我的wxPython程序中创建一个日志框,在某些操作发生时我可以在其中写入消息。另外,我不仅需要在事件发生时写入消息,而且还要在代码中写入特定时间。我将如何重新绘制窗口,以便消息在该瞬间出现?如何在wxPython中制作类似于日志框的东西
5
A
回答
4
+0
这完全是我在找的东西,非常感谢你! – ULcajun 2011-03-31 20:09:22
3
如果你想只是在wxPython日志对话框中,使用wx.LogWindow:
import wx
class MainWindow(wx.Frame):
def __init__(self, parent=None):
wx.Frame.__init__(self, parent, wx.NewId(), 'Logging')
self.log_window = wx.LogWindow(self, 'Log Window', bShow=True)
box_sizer = wx.BoxSizer(orient=wx.VERTICAL)
show_log_button = wx.Button(self, wx.NewId(), 'Show Log')
show_log_button.Bind(wx.EVT_BUTTON, self._show_log)
log_message_button = wx.Button(self, wx.NewId(), 'Log Message')
log_message_button.Bind(wx.EVT_BUTTON, self._log_message)
box_sizer.AddMany((show_log_button, log_message_button))
self.SetSizer(box_sizer)
self.Fit()
self.Bind(wx.EVT_CLOSE, self._on_close)
def _show_log(self, event):
self.log_window.Show()
def _log_message(self, event):
wx.LogError('New error message')
def _on_close(self, event):
self.log_window.this.disown()
wx.Log.SetActiveTarget(None)
event.Skip()
if __name__ == '__main__':
app = wx.PySimpleApp()
dlg = MainWindow()
dlg.Show()
app.MainLoop()
凡bShow在wx.LogWindow是,如果它最初显示与否。这将很好地记录你可以触发的所有wx.LogX消息,并且它仍然将它传递给任何其他处理程序。
你可以使用将记录与蟒蛇,然后,在与中有一个文本控件打开帧/窗口的另一种方法,使用的LoadFile打开日志文件:
import logging
LOG_FILENAME = 'example.log'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)
logging.debug('This message should go to the log file')
然后,当创建一个wx.TextCtrl地方:
log_control = wx.TextCtrl(self, wx.NewId(), style=wx.TE_MULTILINE|wx.TE_READONLY)
log_control.LoadFile('example.log')
编辑: 这现在工作与_on_close事件!由于Fenikso
相关问题
- 1. QTableView中类似于QTableWidget :: currentCellChanged的东西?
- 2. 类似的东西?
- 3. 如何在网页上制作类似于时间机器的东西
- 4. ASP.NET:制作类似于Facebook应用程序栏的东西
- 5. 如何在Java中创建类似于JFileChooser的东西?
- 6. 如何在python中创建类似于?b:c的东西?
- 7. 如何在Samza中实现类似于Storm DRPC的东西?
- 8. 如何制作滚动条,滑动条,类似的东西(android)
- 9. 如何制作类似iPhone文件夹的东西?
- 10. 如何制作rss2gif之类的东西?
- 11. 在.NET框架内类似于SQL IN语句的东西?
- 12. 对于Qt ReSharper(或类似的东西)?
- 13. 噩梦JS控制台日志东西
- 14. 如何制作类似于Visual C#2008属性窗口的东西?
- 15. 如何在IE 7和浏览器6中复制类似于querySelector的东西?
- 16. 如何创建类似NSURLConnection的东西?
- 17. AS3 - 类似arguments.caller的东西?
- 18. 东西类似于distkey和排序键
- 19. 东西在Java中是(类似)参数
- 20. 如何为Mac OSX开发类似于LSP的东西
- 21. 如何使用gettimeofday()或类似于Visual Studio C++ 2008的东西?
- 22. 如何在CSS3中制作类似于此的对话框?
- 23. 在Objective-C中是否有类似于LINQ的东西?
- 24. 在Visual Studio单元测试中类似于NUnit TestCaseSource的东西
- 25. 有没有类似于mongo.model()的东西;在DynamoDB中...?
- 26. 在Java中是否有类似于WebClient.DownloadString的东西?
- 27. 在C++中是否有类似于typeof的东西?
- 28. 寻找类似于ui的东西:在JSP中重复使用
- 29. 类似dict的东西在c
- 30. 如何将SpaceManager cpShape存储在类似数组的东西中?
您有什么特别有问题的?你有什么尝试? – Philip 2011-03-31 03:57:14
我在自己的应用中做过类似的事情。这里是基础知识:我用我的应用程序GTK,创建gtkTextBuffer,并将其分配给textArea。我将更多文本添加到缓冲区,并且GTK自身将其打印到textArea中。我认为在WX中应该有这样的事情。或者,也许你可以在你的应用程序中创建textarea并将文本追加到它 – Lixas 2011-03-31 05:30:52