小编And*_*kov的帖子

如何在Loader项目中连接信号?

我希望从QObject连接一个信号到各个页面,由"Loader"qml元素加载.我的问题类似于死QML元素接收信号?但在调用"onDestruction"方法之前已加载项目.例如下面,如果在控制台中从page1切换到page2:

"QML: Loading status:  1  Item:  QDeclarativeRectangle(0x8dcd408, "page2")
QML Item: Loaded QDeclarativeRectangle(0x8dcd408, "page2") 1
qrc:/page1.qml:12: TypeError: Result of expression 'parent' [null] is not an object.
qrc:/page1.qml:15: ReferenceError: Can't find variable: page1text"
Run Code Online (Sandbox Code Playgroud)

每一秒.因此,不能断开与信号的连接,因为父对象被破坏了.

如何在加载的项目中处理来自QObject(root)的信号?或如何从卸载的页面断开信号?

main.qml

import QtQuick 1.1

Rectangle {
    id: root
    objectName: "root"
    width: 360
    height: 360
    state: "page1"
    color: "white"

    Item {
        width: parent.width
        height: parent.height/2
        anchors.top: parent.top
        Loader {
            id: pageLoader
            objectName: "pageLoader"
            anchors.fill: parent
            anchors.centerIn: parent
            signal textMsg(variant params)
            onStatusChanged: console.log("QML: Loading status: ", status, …
Run Code Online (Sandbox Code Playgroud)

qt signals loader qml qt-quick

4
推荐指数
2
解决办法
4952
查看次数

Python:不要映射 multiprocessing.Pool( ) 的空结果

程序具有可能返回 None 值的函数,以最大限度地减少在并行工作人员中调用该函数的时间。在下面的代码中,该函数的结果具有“None”值,如何从“ret”中排除该值?

#!/usr/bin/python
import sys,multiprocessing,time
maxNumber = sys.maxint+2

def numGen():
    cnt=0
    while cnt < maxNumber:
        cnt +=1
        yield cnt

def oddCheck(num):
    global maxNumber
    # time.sleep(1)
    if not bool(num%1000000):
        print "[%s%%] %s" % (int((num/maxNumber)*100),num)
    if num%2:
        return num

pool = multiprocessing.Pool( )
if sys.maxint < maxNumber:
    print "We have problem on %s"%sys.maxint
    # quit()
ret = pool.imap(oddCheck, numGen())
pool.close()
pool.join()

for x in ret:
    print x
Run Code Online (Sandbox Code Playgroud)

python multithreading dictionary

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

标签 统计

dictionary ×1

loader ×1

multithreading ×1

python ×1

qml ×1

qt ×1

qt-quick ×1

signals ×1