R poly()函数产生用于数据拟合的正交多项式.但是,我想使用R之外的回归结果(比如在C++中),并且似乎没有办法获得每个正交多项式的系数.
注1:我不是指回归系数,而是正交多项式本身的系数),例如p_i(x)in
y = a0 + a1*p_1(x) + a2*p_2(x) + ...
Run Code Online (Sandbox Code Playgroud)
注2:我知道poly(x, n, raw=T)强制多边形来返回非正交多项式,但我想对正交多项式进行回归,这就是我正在寻找的东西.
描述:我编写了一个自定义日志处理程序,用于捕获日志事件并将它们写入QTextBrowser对象(如下所示,示例代码示例).
问题:按下按钮调用someProcess().这会将两个字符串写入logger对象.但是,字符串仅在someProcess()返回后出现.
问题:如何立即/实时地将记录的字符串显示在QTextBrowser对象中?(即一旦logger调用输出方法)
from PyQt4 import QtCore, QtGui
import sys
import time
import logging
logger = logging.getLogger(__name__)
class ConsoleWindowLogHandler(logging.Handler):
def __init__(self, textBox):
super(ConsoleWindowLogHandler, self).__init__()
self.textBox = textBox
def emit(self, logRecord):
self.textBox.append(str(logRecord.getMessage()))
def someProcess():
logger.error("line1")
time.sleep(5)
logger.error("line2")
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
textBox = QtGui.QTextBrowser()
button = QtGui.QPushButton()
button.clicked.connect(someProcess)
vertLayout = QtGui.QVBoxLayout()
vertLayout.addWidget(textBox)
vertLayout.addWidget(button)
window.setLayout(vertLayout)
window.show()
consoleHandler = ConsoleWindowLogHandler(textBox)
logger.addHandler(consoleHandler)
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
编辑:感谢@abarnert的回答,我设法使用QThread编写了这段工作代码.我QThread为了 …
问题
我有一个PyQt GUI,用户按下按钮启动后台线程(workerThread从中进行子类化QThread).我想有一个计时器显示(以a的形式QLabel)来显示自workerThread启动以来已经过了多少时间,我希望这个计时器在workerThread退出后立即停止.
可能解决方案
我已经考虑过创建另一个独立的线程(timerThread),它使用a QTimer向一个槽发送一个信号来更新QLabel主GUI线程中的每1秒经过的时间.这timerThread会从收到终止信号后立即退出workerThread.
但是,我不得不开始timerThread在同一时间WorkerThread,我不知道怎么了这一点.
题
有更简单的方法吗?是QTimer甚至开始用正确的方法呢?
这是答案的后续问题如何从Python日志记录模块获取非阻塞/实时行为?(输出到PyQt QTextBrowser)由X.Jacobs提供.
在Python日志记录模块中,添加自定义处理程序的常规方法是定义一个继承自的处理程序类logging.Handler(我们将其称之为CustomLogHandler).要将其附加到logging流程,我们通常会这样做:
import logging
class CustomLogHandler(logging.Handler):
... (some code here)...
logger = logging.getLogger()
logger.addHandler(CustomLogHandler)
Run Code Online (Sandbox Code Playgroud)
where addHandler是logger实例的方法.
问:假设我们不希望得到一个logger(即我们不想做以上).有可能附加CustomLogHandler到logging自身?
请参阅如何从Python日志记录模块获取非阻塞/实时行为中的注释?(输出到PyQt QTextBrowser)用于上下文.
前提是可以使用自定义处理程序而无需引用logger实例.