我希望从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) 程序具有可能返回 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)