[CPyUG] PySide中如何继承实现QIODevice中的readData方法

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG] PySide中如何继承实现QIODevice中的readData方法

ubunoon-2
Hi,all:

      最近在看豆瓣开源的onering代码,并将其转换为PySide上的代码(不想用Qt的C++开发),在转换的时候,发现有一个readData方法比较特殊,在C++中,用一个数组的方式就可以返回了,在Python中如何设置呢?

     直接在派生中写一个readData的继承函数,并不能够打印出read。

     def readData(self, data,maxSize):
            print "read"


     Qt中的C++原型如下:

virtual qint64 readData ( char * data, qint64 maxSize ) = 0
--
To be pythoner



--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] PySide中如何继承实现QIODevice中的readData方法

机械唯物主义 : linjunhalida
这个要找pyside对应的文档来看. 
是不是这个: http://www.pyside.org/docs/pyside/PySide/QtCore/QIODevice.html#PySide.QtCore.PySide.QtCore.QIODevice.readData

2011/12/20 ubunoon <[hidden email]>
Hi,all:

      最近在看豆瓣开源的onering代码,并将其转换为PySide上的代码(不想用Qt的C++开发),在转换的时候,发现有一个readData方法比较特殊,在C++中,用一个数组的方式就可以返回了,在Python中如何设置呢?

     直接在派生中写一个readData的继承函数,并不能够打印出read。

     def readData(self, data,maxSize):
            print "read"


     Qt中的C++原型如下:

virtual qint64 readData ( char * data, qint64 maxSize ) = 0
--
To be pythoner



--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] PySide中如何继承实现QIODevice中的readData方法

ubunoon-2
我也重新定义了该函数

    def readData(self, maxSize):
        print 'readData', maxSize
        if maxSize < len(self.content):
            data = self.content[maxSize:]
            return len(data)
        return -1

但是并没有输出readData的信息。

class AppReply(QNetworkReply):
    def __init__(self, method, url, bodyDevice = None, parent=None):
        super(AppReply, self).__init__(parent)
        self.method = method
        self.url = url
        self.bodyDevice = bodyDevice
        self.body = ""
        self.content = ''
        self.offset = 0

        if bodyDevice is not None:
            self.bodyDevice.readyRead.connect( self.readBody )
        else:
            self.parseResponse()
            #QTimer.singleShot(1, self.parseResponse)

在测试的时候也发现bodyDevice是一个None值,所以readData的值实际上由parseResponse中读取到的值来进一步处理。

在 2011年12月20日 下午11:51,机械唯物主义 : linjunhalida <[hidden email]>写道:
这个要找pyside对应的文档来看. 
是不是这个: http://www.pyside.org/docs/pyside/PySide/QtCore/QIODevice.html#PySide.QtCore.PySide.QtCore.QIODevice.readData

2011/12/20 ubunoon <[hidden email]>
Hi,all:

      最近在看豆瓣开源的onering代码,并将其转换为PySide上的代码(不想用Qt的C++开发),在转换的时候,发现有一个readData方法比较特殊,在C++中,用一个数组的方式就可以返回了,在Python中如何设置呢?

     直接在派生中写一个readData的继承函数,并不能够打印出read。

     def readData(self, data,maxSize):
            print "read"


     Qt中的C++原型如下:

virtual qint64 readData ( char * data, qint64 maxSize ) = 0
--
To be pythoner



--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
To be pythoner
My blog: http://www.cnblogs.com/ubunoon/
珍珠饰品:http://zjyuezz.cn.alibaba.com/


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html