application widget link 如何到application object?

How does application widget link to application object?

我一直在查看 this PyQt/PySide2 文档,它列出了这个例子:

import sys
from PySide2.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
label = QLabel("Hello World!")
label.show()
app.exec_()

在等效的 tkinter 代码中,必须向小部件传递对应用程序的引用以了解出现的位置:

import tkinter as tk
root = tk.Tk()
label = tk.Label(root) # <-- reference to application passed
label.pack()
root.mainloop()

Qt label 如何知道要引用哪个应用程序?它不是全球性的还是什么?

QApplication 是一个单例,可以使用 QApplication::instance() 或 qApp(在 C++ 中)在任何地方访问,因此不会将对象直接传递给它。我不知道 tkinter,所以我不知道为什么它是必要的,或者正如 @Bryan Oakley 所说的最佳实践。