1

QtGui について知られていることは、GUI プログラムがインターフェイスを作成するために使用され、QtCore は非 GUI プログラム用であり、実際にインターフェイスの下で動作することです。しかし、実行中のアプリケーションのインスタンスを取得するには、QtCore と QtGui のいずれかを使用して、 と を使用して現在実行中のインスタンスを返すことができることがわかりましQtCore.QCoreApplicationQtGui.QApplication

では、それらを使用して返されるインスタンスの違いは何ですか? 彼らは同じことを指していますか?

4

2 に答える 2

1

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++ では、この型キャストを自分で行う必要があります。

于 2016-04-11T23:33:57.597 に答える