首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QFileDialog分量信号

QFileDialog分量信号
EN

Stack Overflow用户
提问于 2014-05-09 18:38:31
回答 1查看 209关注 0票数 0

我正在子类QFileDialog,以尝试获得一些自定义行为。I希望连接到对话框的组件发出的信号,例如,在手动编辑文件名行时发出的信号。--我知道QFileDialog本身会发出一些信号,但这些信号不包括我想要响应的情况。

关于这一点,我有两种方法,但我不知道如何实现。一种是以某种方式获得对组件的引用,以连接到它的信号。另一个是带有事件过滤器的东西,但事件源是对话框本身,所以我不知道如何确定鼠标单击或按下键的位置。

这些方法中的任何一种可行吗?或者另一种方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-11 05:24:55

这里有一个选择(你的第一个建议):

代码语言:javascript
复制
dialog = QFileDialog()
layout = dialog.layout()
# for i in range(layout.rowCount()):
    # for j in range(layout.columnCount()):
        # try:
            # print i,j
            # print layout.itemAtPosition(i,j).widget()
        # except:
            # pass
line_edit = layout.itemAtPosition(2,1).widget()
line_edit.setText('Hello Stack Overflow')
dialog.exec_()

这使您可以访问对话框中的QLineEdit,该对话框中有大量可以连接到的信号。

我还包括了用来查找这个小部件的代码。我只是在对话框的布局中迭代了小部件,并找到了我想要的那个小部件的索引。因此,如果您需要访问对话框中的其他任何内容,您应该能够很容易地找到它!

这种方法的缺点是:如果Qt的未来版本中的布局发生变化,这将导致中断。我想您可以通过查找作为QLineEdit实例的小部件来使算法更加健壮,但是像这样的黑客方法总是有风险的!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23571768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档