关于QtGui的已知信息是,它用于GUI程序来创建界面,而QtCore则用于非GUI程序,并且实际上在该接口下工作。但是,要获取正在运行的应用程序的实例,我发现我们可以使用QtCore和QtGui来使用QtCore.QCoreApplicationQtGui.QApplication返回当前正在运行的实例。

那么使用它们返回的实例之间有什么区别?
他们指的是同一件事吗?

最佳答案

没什么区别,因为instance()中的QApplication方法是从QCoreApplication继承的。您还可以如下所示:

>>> from PyQt4.QtCore import QCoreApplication
>>> from PyQt4.QtGui import QApplication
>>> a = QApplication([])
>>> a
<PyQt4.QtGui.QApplication object at 0x02A75620>
>>> QApplication.instance()
<PyQt4.QtGui.QApplication object at 0x02A75620>
>>> QCoreApplication.instance()
<PyQt4.QtGui.QApplication object at 0x02A75620>

>>> b = QCoreApplication([])
>>> b
<PyQt4.QtCore.QCoreApplication object at 0x02A75670>
>>> QCoreApplication.instance()
<PyQt4.QtCore.QCoreApplication object at 0x02A75670>
>>> QApplication.instance()
<PyQt4.QtCore.QCoreApplication object at 0x02A75670>


请注意,无论您使用哪个类访问实例,PyQt都会正确地对对象进行类型转换。在C ++中,您需要自己进行类型转换。

关于python - QtGui.QApplication和QtCore.QCoreApplication之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36557663/

10-11 18:13