【问题标题】:Can I use something other than 'self' in this PyQt Function?我可以在这个 PyQt 函数中使用“自我”以外的东西吗?
【发布时间】:2016-06-10 01:51:45
【问题描述】:

我是 Python 和 PyQt 的新手。这个函数不在一个类中,并且被另一个不是自引用的函数调用。 (我不确定你是不是这么称呼它。我的意思是,没有一个函数属于function_name(self) 类型)

def openFileDialog():
    filename = QtGui.QFileDialog.getOpenFileName(self, "Open File", "/home/username/Pictures")
    print(filename)

我可以通过什么来代替self?我试过Dialognoneparent=none,但这些都不起作用。

【问题讨论】:

  • 你是从GUI工具调用这个函数,还是命令行工具?
  • 你所说的“这些都不是”是什么意思。你想通过传递任何东西而不是 self 来完成什么?

标签: python pyqt pyqt4


【解决方案1】:

parent 参数就是这样QFileDialog 正确地作为小部件的父级。您希望对话框和窗口正确地成为彼此的父级的原因有很多。

  • 它们继承父级的样式和调色板。
  • 它们将使用相对于父级的窗口位置创建。
  • 您的操作系统的窗口管理器会将它们视为同一个应用程序(例如,在任务栏或停靠栏上,两个对话框/窗口将组合在一起)。
  • 未处理的事件传播到父级。

如果你不关心这些事情,你可以直接传递None

filename = QtGui.QFileDialog.getOpenFileName(None, "Open File", "/home/username/Pictures")

或者,为了更通用一点,给你的函数一个可选的parent参数

def openFileDialog(parent=None):
    filename = QtGui.QFileDialog.getOpenFileName(parent, "Open File", "/home/username/Pictures")
    print(filename)

【讨论】:

  • 我明白了。我试过“无”而不是“无”。愚蠢的错误!非常感谢,它奏效了。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多