在pyq中使用python访问本机QTtypes

2024-10-02 10:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以用一个简单的构造函数访问PyQt中的原生Qt类型?在

为什么这是个问题?在

最近,我在设置标志时发生了一个意外错误:

opts = 0  # in this case, no flag was set
myQMainWindow.setDockOptions( opts )

QMainWindow.setDockOptions() expects a QMainWindow.DockOption: unexpected type 'int'

我期望参数的类型是int,因为当你看到PyQt5\QtWidgets\QMainWindow.py时,你会看到这些dockoption是以相同的模式定义的:

^{pr2}$

我是如何解决这个问题的:

我滥用了^{}-函数从一个allready已知标志中获取underlaying类,使用:

dockOptionFlag = type(QMainWindow.AnimatedDocks) # not 'int'
opts = dockOptionFlag() # in Debug-Mode this is still shown as 'int':0
myQMainWindow.setDockOptions( opts )

你为什么需要这样的东西?在

当我最近将qt代码从c++转换为python时,我意识到一些qt类(与python类相同)具有额外的功能。在

例如:

  • 在python中,^{}本质上是^{}。。。但除此之外,它还提供了一个功能来添加带有现有键的条目,而不会覆盖(^{})。

  • 在python中,^{}本质上是^{}。。。但是left(n)的函数与'someText'[n:]相似,如果n为负数,则返回整个字符串,这在我的python翻译中不是这样。

我知道这些都是简单的示例,它们的功能可以在或多或少的时间内重新实现,但这不是必需的,因为它已经在c++包装的pyqt中存在。在


它们是否是一种python方式,可以通过一个简单的构造函数访问python中的本地类型?
类似于:temp = qtType("QMap", *args, **kwargs)


Tags: 函数in功能类型标志typethisqt

热门问题