PyQt4中如何查找一个窗口中的子控件?


PyQt4中如何查找一个窗口中的子控件(子窗口)?


大家都知道可以使用findChild或findChildren来做,可是怎么做按PyQt的文档说明来做会失败:


[python]
indChild(QObject,ObjectName)#PyQt的文档说明 

findChild(QObject,ObjectName)#PyQt的文档说明
搜索国外的网站也没有能提供正确指导的,有的干脆说是bug.

真的是这样吗?

我看了一下PyQt4对这个函数的内部封装细节,发现只有通过下面类似的调用才是唯一正确的.


[python]
class QTestDialog(QtGui.QDialog): 
    def __init__(self, parent=None): 
        QtGui.QDialog.__init__(self, parent=parent) 
        #~ #........  
        LineEdit=QtGui.QLineEdit('Show how to use findChild()') 
        #~ #为控件窗口设置一个名字,方便使用函数findChild()查找  
        LineEdit.setObjectName('LEName')   
        #~ #........  
        #~ #以后可以通过下面的方法来查找这个窗口  
        FindLE=self.findChild((QtGui.QLineEdit, ),'LEName') 
        #~ #........ 

class QTestDialog(QtGui.QDialog):
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent=parent)
        #~ #........
        LineEdit=QtGui.QLineEdit('Show how to use findChild()')
        #~ #为控件窗口设置一个名字,方便使用函数findChild()查找
        LineEdit.setObjectName('LEName') 
        #~ #........
        #~ #以后可以通过下面的方法来查找这个窗口
        FindLE=self.findChild((QtGui.QLineEdit, ),'LEName')
        #~ #........

也就是要将QObject封装成tuple类型.

 

相关内容

    暂无相关文章

评论关闭