PyQt4 将转换矩阵作为参数传递给构造函数
Posted
技术标签:
【中文标题】PyQt4 将转换矩阵作为参数传递给构造函数【英文标题】:PyQt4 pass transformation matrix as argument to constructor 【发布时间】:2016-04-13 15:01:06 【问题描述】:我正在为 PyQt4 编写一个小部件,项目风格指南规定我通过构造函数中的 kwargs 传递 Qt 元素的静态属性。
很遗憾,我无法为我想要传递的属性找到正确的 kwarg 名称。
我当前的实现如下所示:
self.scene = QtGui.QGraphicsScene(self)
self.view = QtGui.QGraphicsView(self.scene, self.mainArea)
# Flip y axis for sane drawing
matrix = QtGui.QMatrix()
matrix.scale(1, -1)
self.view.setMatrix(matrix)
如果可能的话,我想找到一种方法通过 QGraphicsView
构造函数传递 matrix
。
我已经尝试了以下
self.view = QtGui.QGraphicsView(self.scene, self.mainArea, matrix=matrix)
self.view = QtGui.QGraphicsView(self.scene, self.mainArea, transform=matrix)
但是这两个实例都告诉我它们是未知的关键字参数。我不确定这是否可以通过构造函数实现,但我无法在任何地方找到明确的答案。
我也不清楚 Qt 元素的“静态属性”究竟是什么。
【问题讨论】:
pyqt.sourceforge.net/Docs/PyQt4/qgraphicsview.html 基于this docs我不认为你可以使用这些参数创建一个构造函数。 【参考方案1】:您确定您正确理解了样式指南吗?我怀疑它是否希望您使用 kwargs 设置 每个可能的类的每个可能的属性。 QGraphicsView
类具有 eighty properties。你认为 Qt 用 80 个可选参数定义构造函数是合理的吗?
我认为该指南更有可能只是要求您使用 kwargs只要它们可用。否则,您应该只使用属性设置器函数。
PS:
QGraphicsView
的 matrix 无论如何都不是属性,因此对于您的具体示例,这一点没有实际意义。
【讨论】:
这正是我的问题。样式指南要求我在可用时将它们作为参数传递,但我不确定在哪里可以找到可以传递的参数列表。如果不可能,这对我也有很大帮助,因为我不确定是否定义了适当的构造函数。但是,我想知道您从哪里获得参数列表,因为我无法找到有关 PyQt4 的全面文档。 @Pavlin。我在回答中给出了 qt 文档的相关链接。还有一个 pyqt 版本的 qt 文档here。以上是关于PyQt4 将转换矩阵作为参数传递给构造函数的主要内容,如果未能解决你的问题,请参考以下文章