Summerfield の「Python と Qt を使用した高速 GUI プログラミング」。私は一般的に本が大好きです。最初の数章は、私がオンラインまたはその他の方法で見つけた最高の Python 入門書であり、例は多様で役に立ちます (完全ではありませんが、確かにパディングとリトレースがあります - はるかに直接的である可能性があります)。
私の問題は、それから悪い習慣を身につけているのではないかと感じていることです. 新しい属性を既存のオブジェクトに動的に割り当てる代わりに、作成者は「setData」関数、特別な MIMEData スロットなどを使用します。以下は、私が Stackoverflow で最初に尋ねた質問の 1 つからの良い例です。
PyQtウィジェットアイテムから「データ」を設定して取得しますか?
または、たとえば、ページ デザイナー アプリで:
def writeItemToStream(self, stream, item):
if isinstance(item, QGraphicsTextItem):
stream << QString("Text") << item.pos() \
<< item.matrix() << item.toPlainText() << item.font()
elif isinstance(item, QGraphicsPixmapItem):
stream << QString("Pixmap") << item.pos() \
<< item.matrix() << item.pixmap()
elif isinstance(item, BoxItem):
stream << QString("Box") << item.pos() \
<< item.matrix() << item.rect
stream.writeInt16(item.style)
著者の C++/Qt のバックグラウンドが、彼の例を最適ではないものにしている可能性があると考えるのは正しいですか? それとも、彼の選択の多くを理解しようとし続ける必要がありますか?