2016-06-08 32 views
0

我是Python和PyQt的新手。这个函数不在一个类中,并且被另一个不是自引用的函数调用。 (我不知道如果这是你叫什么。我的意思是,没有任何的功能类型function_name(self)的)我可以在这个PyQt函数中使用'self'以外的东西吗?

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

我可以传递的,而不是self什么?我试过Dialog,none,parent=none,但都没有工作。

+0

你打电话从GUI工具这个功能,或者是一个命令行工具? –

+0

你是什么意思的“这些工作都没有”。你想通过传递什么而不是自我来完成什么? – Trilarion

回答

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) 
+0

我明白了。 我曾尝试过“无”,而不是“无”。愚蠢的错误! 非常感谢,它工作。 :) – vss

相关问题