我假設這可以用多行文本框,但不知道如何去做。我想要做的是在我的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. 如何在Samza中實現類似於Storm DRPC的東西?
- 6. 如何在Java中創建類似於JFileChooser的東西?
- 7. 如何在python中創建類似於?b:c的東西?
- 8. 如何製作類似iPhone文件夾的東西?
- 9. 如何製作滾動條,滑動條,類似的東西(android)
- 10. 如何在Canvas中繪製圖標或類似的東西?
- 11. 如何製作rss2gif之類的東西?
- 12. 在.NET框架內類似於SQL IN語句的東西?
- 13. 東西類似於過渡的IE
- 14. 對於Qt ReSharper(或類似的東西)?
- 15. Android:類似於CALayer的東西?
- 16. 如何製作類似於Visual C#2008屬性窗口的東西?
- 17. 噩夢JS控制檯日誌東西
- 18. 如何在IE 7和瀏覽器6中複製類似於querySelector的東西?
- 19. 如何創建類似NSURLConnection的東西?
- 20. AS3 - 類似arguments.caller的東西?
- 21. 東西類似於distkey和排序鍵
- 22. 在C#中列出類似於C++中的vector.reserve(n)的東西
- 23. 東西在Java中是(類似)參數
- 24. 類似於Android的iPhone中的任何東西ArrayList
- 25. 如何爲Mac OSX開發類似於LSP的東西
- 26. Winforms - 如何創建一個類似於母版頁的東西?
- 27. 如何實現類似於@Override java註釋的東西?
- 28. 如何使用gettimeofday()或類似於Visual Studio C++ 2008的東西?
- 29. 我應該如何定義類似於Erlang的東西
- 30. 如何爲類似日誌
您有什麼特別有問題的?你有什麼嘗試? – Philip 2011-03-31 03:57:14
我在自己的應用中做過類似的事情。這裏是基礎知識:我用我的應用程序GTK,創建gtkTextBuffer,並將其分配給textArea。我將更多文本添加到緩衝區,並且GTK自身將其打印到textArea中。我認爲在WX中應該有這樣的事情。或者,也許你可以在你的應用程序中創建textarea並將文本追加到它 – Lixas 2011-03-31 05:30:52