私はQtにかなり慣れていません。イントロスペクションと Glade UI デザイナーを使用して、Gtk3 でいくつかのものを作成しました。
今、私は PyQt を学ぼうとしています。Ui をクラスにする方法は気に入っていますが (私には管理が簡単に思えます)、何かが私を困惑させます。(実行可能ファイルの作成) フラグを付けて実行するpyuic4
と、-x
次のコードが含まれます。
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_multippp(object):
def setupUi(self, multippp):
multippp.setObjectName(_fromUtf8("multippp"))
multippp.resize(371, 43)
self.verticalLayout = QtGui.QVBoxLayout(multippp)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label = QtGui.QLabel(multippp)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout.addWidget(self.label)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.verticalLayout.addLayout(self.verticalLayout_2)
self.retranslateUi(multippp)
QtCore.QMetaObject.connectSlotsByName(multippp)
def retranslateUi(self, multippp):
multippp.setWindowTitle(QtGui.QApplication.translate("multippp", "Multiple PPP Accounts", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("multippp", "More than one PPP account found, please select one:", None, QtGui.QApplication.UnicodeUTF8))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
multippp = QtGui.QDialog()
ui = Ui_multippp()
ui.setupUi(multippp)
multippp.show()
sys.exit(app.exec_())
この (生成された) コードで理解しようとしているのは、multippp ダイアログが他のすべてのウィジェットを含むクラスの一部ではない理由です。代わりに、私が知る限り、QDialog を渡すと、希望どおりに彫刻されます。QDialog を分離する利点はありますか? もしそうなら、その利点は何ですか?