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

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

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

findChild(QObject,ObjectName)#PyQt的文档说明


搜索国外的网站也没有能提供正确指导的,有的干脆说是bug.

真的是这样吗?

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

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类型.

不过在PySide中就可以直接用下面的代码:

FindLE=self.findChild(QtGui.QLineEdit,'LEName')


这一点,显得PySide有点人性了!

你可能感兴趣的:(PyQt4中如何查找一个窗口中的子控件?)