python代码实现:将QPlainTextEdit控件log窗口的输出自动生成一个文件
时间: 2023-05-12 21:05:29 浏览: 127
可以使用Python的logging模块来实现将QPlainTextEdit控件log窗口的输出自动生成一个文件的功能。具体实现代码如下:
```python
import logging
from PyQt5.QtWidgets import QPlainTextEdit
class LogHandler(logging.Handler):
def __init__(self, edit):
super().__init__()
self.edit = edit
def emit(self, record):
msg = self.format(record)
self.edit.appendPlainText(msg)
def setup_logging(log_file, edit):
handler = LogHandler(edit)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger = logging.getLogger()
logger.addHandler(handler)
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
```
在使用QPlainTextEdit控件的地方,可以调用setup_logging函数来设置日志输出到文件和控件中:
```python
log_file = 'log.txt'
log_edit = QPlainTextEdit()
setup_logging(log_file, log_edit)
```
这样,日志就会同时输出到文件和QPlainTextEdit控件中。
阅读全文