2017-06-03 102 views
1

我正在尝试使用QtGlobal Header File中的某些功能,但无法识别它们的位置。即,qMax和qMin功能。PyQt5中是否可以访问QtGlobal声明?

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

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' 

我看不出为什么这些函数不会被包含在某个地方,但我不知道如何使用它们。

那么他们包括,如果是的话,我该怎么称呼他们?

回答

2

的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' 
相关问题