我可以在这个PyQt函数中使用除“self”之外的东西吗?

时间:2016-06-08 17:57:52

标签: python pyqt pyqt4

我是Python和PyQt的新手。此函数不在类中,并由另一个非自引用的函数调用。 (我不确定这是否就是你所说的。我的意思是,所有的功能都不属于function_name(self)类型)

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

我可以通过什么代替self?我尝试了Dialognoneparent=none,但这些都没有。

1 个答案:

答案 0 :(得分:2)

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)