Summerfield 的“使用 Python 和 Qt 进行快速 GUI 编程”。总的来说,我喜欢这本书。前几章是我在网上或其他地方找到的最好的 Python 入门书,示例多种多样且很有帮助(虽然并不完美,肯定有一些填充和追溯——它可能更直接)。
我的问题是我觉得我可能会从中养成坏习惯。作者不只是动态地为现有对象分配新属性,而是使用“setData”函数、特殊的 MIMEData 插槽等等。这是我在 Stackoverflow 上提出的第一个问题的一个很好的例子:
或者,例如,在页面设计器应用程序中:
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 背景可能会使他的示例不理想?还是我应该继续尝试理解他的许多选择?