我正在尝试使用QtGlobal Header File中的某些功能,但无法确定它们的位置。即,qMax和qMin函数。

我尝试通过以下方式使用它:

qMax(190, fontHeight * 12)
QtCore.qMax(190, fontHeight * 12)
QtGui.qMax(190, fontHeight * 12)
QtWidgets.qMax(190, fontHeight * 12)


第一种方法具有以下响应:

NameError: name 'qMax' is not defined


最后的3个基本上具有相同的错误,只是用QtCore替换了我尝试从中导入它们的任何模块。

AttributeError: module 'PyQt5.QtCore' has no attribute 'qMax'


我不明白为什么这些功能不会包含在某个地方,但是我只是不知道如何使用它们。

那么它们是否包括在内,如果是的话,我该如何称呼它们?

最佳答案

QtGlobal函数位于QtCore模块中,但并未包括所有内容:

>>> print(' '.join(x for x in dir(QtCore) if x[0] == 'q'))
qAbs qAddPostRoutine qAddPreRoutine qChecksum qCompress qCritical qDebug
qErrnoWarning qFatal qFloatDistance qFormatLogMessage qFuzzyCompare qInf
qInstallMessageHandler qIsFinite qIsInf qIsNaN qIsNull qQNaN
qRegisterResourceData qRemovePostRoutine qRound qRound64 qSNaN
qSetFieldWidth qSetMessagePattern qSetPadChar qSetRealNumberPrecision
qSharedBuild qUncompress qUnregisterResourceData qVersion qWarning
qrand qsrand


包括qMinqMax似乎毫无意义。 Python已经有了minmax,它们提供了更为出色的API。

PS:

我想我应该补充一点,只要min/max与Qt类型配合使用,只要它们实现小于运算符(__lt__):

>>> x = QtGui.QStandardItem('1')
>>> y = QtGui.QStandardItem('2')
>>> min(x, y).text()
'1'
>>> max(x, y).text()
'2'

关于python - 在PyQt5中可以访问QtGlobal声明吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44347274/

10-10 07:24