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

来源:互联网 发布:四川网络推广托管 编辑:程序博客网 时间:2024/06/04 23:53

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有点人性了!