小编Gil*_*ead的帖子

从R的poly()函数中提取正交多项式系数?

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)强制多边形来返回非正交多项式,但我想对正交多项式进行回归,这就是我正在寻找的东西.

r

15
推荐指数
1
解决办法
1897
查看次数

如何从Python日志记录模块获取非阻塞/实时行为?(输出到PyQt QTextBrowser)

描述:我编写了一个自定义日志处理程序,用于捕获日志事件并将它们写入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为了 …

python logging pyqt nonblocking qtextbrowser

8
推荐指数
1
解决办法
6343
查看次数

关于GUI计时器的建议,以显示后台线程的已用时间?

问题

我有一个PyQt GUI,用户按下按钮启动后台线程(workerThread从中进行子类化QThread).我想有一个计时器显示(以a的形式QLabel)来显示自workerThread启动以来已经过了多少时间,我希望这个计时器在workerThread退出后立即停止.

可能解决方案

我已经考虑过创建另一个独立的线程(timerThread),它使用a QTimer向一个槽发送一个信号来更新QLabel主GUI线程中的每1秒经过的时间.这timerThread会从收到终止信号后立即退出workerThread.

但是,我不得不开始timerThread在同一时间WorkerThread,我不知道怎么了这一点.

有更简单的方法吗?是QTimer甚至开始用正确的方法呢?

python qt pyqt qthread qtimer

3
推荐指数
1
解决办法
2635
查看次数

在没有记录器实例的情况下向Python日志记录模块添加自定义处

这是答案的后续问题如何从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 addHandlerlogger实例的方法.

:假设我们希望得到一个logger(即我们不想做以上).有可能附加CustomLogHandlerlogging自身?

请参阅如何从Python日志记录模块获取非阻塞/实时行为中的注释(输出到PyQt QTextBrowser)用于上下文.

前提是可以使用自定义处理程序而无需引用logger实例.

python logging

0
推荐指数
1
解决办法
1294
查看次数

标签 统计

python ×3

logging ×2

pyqt ×2

nonblocking ×1

qt ×1

qtextbrowser ×1

qthread ×1

qtimer ×1

r ×1