2016-06-08 61 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

相關問題