- class QObject#
QObject类是所有 Qt 对象的基类。更多信息...Inherited by:
QWidget,QWizardPage,QToolBar,QTabWidget,QTabBar,QStatusBar,QSplitterHandle,QSplashScreen,QSizeGrip,QRubberBand,QRhiWidget,QProgressBar,QMenuBar,QMenu,QMdiSubWindow,QMainWindow,QLineEdit,QKeySequenceEdit,QGroupBox,QFrame,QToolBox,QStackedWidget,QSplitter,QLabel,QLCDNumber,QAbstractScrollArea,QTextEdit,QTextBrowser,QScrollArea,QPlainTextEdit,QMdiArea,QGraphicsView,QAbstractItemView,QTreeView,QTreeWidget,QHelpContentWidget,QTableView,QTableWidget,QListView,QUndoView,QListWidget,QHelpIndexWidget,QHeaderView,QColumnView,QPdfView,QFocusFrame,QDockWidget,QDialogButtonBox,QDialog,QWizard,QProgressDialog,QMessageBox,QInputDialog,QFontDialog,QErrorMessage,QColorDialog,QPrintPreviewDialog,QPageSetupDialog,QAbstractPrintDialog,QPrintDialog,QComboBox,QFontComboBox,QCalendarWidget,QAbstractSpinBox,QSpinBox,QDoubleSpinBox,QDateTimeEdit,QTimeEdit,QDateEdit,QAbstractSlider,QSlider,QScrollBar,QDial,QAbstractButton,QToolButton,QRadioButton,QPushButton,QCommandLinkButton,QCheckBox,QSvgWidget,QQuickWidget,QAbstract3DGraph,Q3DSurface,Q3DScatter,Q3DBars,QPrintPreviewWidget,QPdfPageSelector,QOpenGLWidget,QVideoWidget,QHelpSearchResultWidget,QHelpSearchQueryWidget,QHelpFilterSettingsWidget,QDesignerWidgetBoxInterface,QDesignerPropertyEditorInterface,QDesignerObjectInspectorInterface,QDesignerFormWindowInterface,QDesignerActionEditorInterface,QSystemTrayIcon,QStyle,QCommonStyle,QProxyStyle,QScroller,QLayout,QStackedLayout,QGridLayout,QFormLayout,QBoxLayout,QVBoxLayout,QHBoxLayout,QGraphicsTransform,QGraphicsScale,QGraphicsRotation,QGraphicsScene,QGraphicsObject,QGraphicsWidget,QGraphicsProxyWidget,QGraphicsTextItem,QGraphicsSvgItem,QGraphicsVideoItem,QGraphicsItemAnimation,QGraphicsEffect,QGraphicsOpacityEffect,QGraphicsDropShadowEffect,QGraphicsColorizeEffect,QGraphicsBlurEffect,QGraphicsAnchor,QGesture,QTapGesture,QTapAndHoldGesture,QSwipeGesture,QPinchGesture,QPanGesture,QDataWidgetMapper,QCompleter,QButtonGroup,QAbstractItemDelegate,QStyledItemDelegate,QItemDelegate,QMaskGenerator,QQuickWebEngineProfile,QWebEngineWebAuthUxRequest,QWebEngineUrlSchemeHandler,QWebEngineUrlRequestJob,QWebEngineUrlRequestInterceptor,QWebEngineProfile,QWebEngineNotification,QWebEngineNewWindowRequest,QWebEngineHistory,QWebEngineDownloadRequest,QWebEngineContextMenuRequest,QWebChannelAbstractTransport,QWebChannel,QUiLoader,QTextToSpeechEngine,QTextToSpeech,QSignalSpy,QAbstractItemModelTester,QSvgRenderer,QAbstractTransition,QSignalTransition,QEventTransition,QMouseEventTransition,QKeyEventTransition,QAbstractState,QState,QStateMachine,QHistoryState,QFinalState,QSqlDriver,QSpatialSound,QAudioRoom,QAudioListener,QAudioEngine,QAmbientSound,QModbusReply,QModbusDevice,QModbusServer,QModbusTcpServer,QModbusRtuSerialServer,QModbusClient,QModbusTcpClient,QModbusRtuSerialClient,QCanBusDevice,QCanBus,QSensorReading,QTiltReading,QTapReading,QRotationReading,QProximityReading,QPressureReading,QOrientationReading,QMagnetometerReading,QLightReading,QLidReading,QIRProximityReading,QHumidityReading,QGyroscopeReading,QCompassReading,QAmbientTemperatureReading,QAmbientLightReading,QAccelerometerReading,QSensorBackend,QSensor,QTiltSensor,QTapSensor,QRotationSensor,QProximitySensor,QPressureSensor,QOrientationSensor,QMagnetometer,QLightSensor,QLidSensor,QIRProximitySensor,QHumiditySensor,QGyroscope,QCompass,QAmbientTemperatureSensor,QAmbientLightSensor,QAccelerometer,QScxmlStateMachine,QScxmlInvokableServiceFactory,QScxmlStaticScxmlServiceFactory,QScxmlDynamicScxmlServiceFactory,QScxmlInvokableService,QScxmlDataModel,QScxmlNullDataModel,QScxmlCppDataModel,QRemoteObjectReplica,QRemoteObjectRegistry,QRemoteObjectDynamicReplica,QRemoteObjectPendingCallWatcher,QRemoteObjectNode,QRemoteObjectAbstractPersistedStore,QRemoteObjectSettingsStore,QQuick3DObject,QQuick3DTextureData,QQuick3DRenderExtension,QQuick3DInstancing,QQuick3DGeometry,QSGTextureProvider,QSGTexture,QSGDynamicTexture,QQuickTransform,QQuickTextureFactory,QQuickTextDocument,QQuickRenderControl,QQuickItemGrabResult,QQuickItem,QQuickRhiItem,QQuickPaintedItem,QQuickFramebufferObject,QQuickImageResponse,QQmlPropertyMap,QQmlImageProviderBase,QQuickImageProvider,QQuickAsyncImageProvider,QQmlFileSelector,QQmlExtensionPlugin,QQmlExpression,QQmlContext,QQmlComponent,QJSEngine,QQmlEngine,QGeoSatelliteInfoSource,QGeoPositionInfoSource,QNmeaPositionInfoSource,QGeoAreaMonitorSource,QPdfPageRenderer,QPdfPageNavigator,QPdfDocument,QOpenGLVertexArrayObject,QOpenGLTimerQuery,QOpenGLTimeMonitor,QOpenGLShaderProgram,QOpenGLShader,QOpenGLDebugLogger,QOpcUaProvider,QOpcUaNode,QOpcUaHistoryReadResponse,QOpcUaGenericStructHandler,QOpcUaClient,QNearFieldTarget,QNearFieldManager,QAbstractOAuthReplyHandler,QOAuthOobReplyHandler,QRestAccessManager,QNetworkInformation,QNetworkCookieJar,QNetworkAccessManager,QLocalServer,QHttpMultiPart,QDtlsClientVerifier,QDnsLookup,QAbstractNetworkCache,QNetworkDiskCache,QWindowCapture,QVideoSink,QSoundEffect,QScreenCapture,QMediaRecorder,QMediaDevices,QMediaCaptureSession,QImageCapture,QCamera,QAudioSource,QAudioSink,QAudioOutput,QAudioInput,QAudioDecoder,QMqttSubscription,QPlaceReply,QPlaceSearchSuggestionReply,QPlaceSearchReply,QPlaceMatchReply,QPlaceIdReply,QPlaceDetailsReply,QPlaceContentReply,QPlaceManagerEngine,QPlaceManager,QGeoServiceProvider,QGeoRoutingManagerEngine,QGeoRoutingManager,QGeoRouteReply,QGeoCodingManagerEngine,QGeoCodingManager,QGeoCodeReply,QHelpSearchEngine,QHelpFilterEngine,QHelpEngineCore,QHelpEngine,QWindow,QQuickWindow,QQuickView,QPaintDeviceWindow,QOpenGLWindow,QRasterWindow,QValidator,QRegularExpressionValidator,QIntValidator,QDoubleValidator,QUndoStack,QUndoGroup,QTextObject,QTextFrame,QTextTable,QTextBlockGroup,QTextList,QTextDocument,QSyntaxHighlighter,QStyleHints,QShortcut,QSessionManager,QScreen,QPdfWriter,QOpenGLContextGroup,QOpenGLContext,QOffscreenSurface,QInputMethod,QInputDevice,QPointingDevice,QDrag,QClipboard,QActionGroup,QAction,QWidgetAction,QAbstractTextDocumentLayout,QPlainTextDocumentLayout,QValue3DAxisFormatter,QLogValue3DAxisFormatter,QSeriesTheme,QGraphTheme,QCustom3DItem,QCustom3DVolume,QCustom3DLabel,QBarSet,QAbstractSeries,QXYSeries,QScatterSeries,QLineSeries,QAbstractBarSeries,QBarSeries,QAbstractDataProxy,QSurfaceDataProxy,QItemModelSurfaceDataProxy,QHeightMapSurfaceDataProxy,QScatterDataProxy,QItemModelScatterDataProxy,QBarDataProxy,QItemModelBarDataProxy,QAbstractAxis,QValueAxis,QBarCategoryAxis,QAbstract3DSeries,QSurface3DSeries,QScatter3DSeries,QBar3DSeries,QAbstract3DInputHandler,Q3DInputHandler,QTouch3DInputHandler,QAbstract3DAxis,QValue3DAxis,QCategory3DAxis,Q3DTheme,Q3DScene,QExtensionManager,QDesignerFormWindowToolInterface,QDesignerFormWindowManagerInterface,QDesignerFormEditorInterface,QDBusVirtualObject,QDBusServiceWatcher,QDBusServer,QDBusPendingCallWatcher,QDBusAbstractInterfaceBase,QDBusAbstractInterface,QDBusInterface,QDBusConnectionInterface,QDBusAbstractAdaptor,QTranslator,QTimer,QTimeLine,QThreadPool,QSocketNotifier,QSignalMapper,QSharedMemory,QSettings,QPluginLoader,QMimeData,QLibrary,QItemSelectionModel,QIODevice,QSerialPort,QNetworkReply,QLocalSocket,QAbstractSocket,QUdpSocket,QTcpSocket,QWebSocketServer,QOAuthHttpServerReplyHandler,QTcpServer,QSslServer,QAbstractHttpServer,QHttpServer,QProcess,QFutureWatcherBase,QFutureWatcher,QFileSystemWatcher,QFileSelector,QFileDevice,QSaveFile,QFile,QTemporaryFile,QEventLoop,QThread,QCoreApplication,QGuiApplication,QApplication,QWebSocket,QAbstractOAuth,QOAuth1,QAbstractOAuth2,QOAuth2AuthorizationCodeFlow,QSslSocket,QDtls,QMqttClient,QMovie,QFileDialog,QWebEngineView,QWebEnginePage,QWebEngineCookieStore,QRemoteObjectHostBase,QRemoteObjectRegistryHost,QRemoteObjectHost,QQmlApplicationEngine,QMediaPlayer,QBuffer,QAbstractItemModel,QFileSystemModel,QAbstractItemModelReplica,QPdfBookmarkModel,QHelpContentModel,QStandardItemModel,QConcatenateTablesProxyModel,QAbstractTableModel,QSqlQueryModel,QSqlTableModel,QSqlRelationalTableModel,QAbstractProxyModel,QTransposeProxyModel,QSortFilterProxyModel,QIdentityProxyModel,QAbstractListModel,QWebEngineHistoryModel,QPdfSearchModel,QPdfLinkModel,QStringListModel,QHelpIndexModel,QAbstractEventDispatcher,QAbstractAnimation,QVariantAnimation,QPropertyAnimation,QPauseAnimation,QAnimationGroup,QSequentialAnimationGroup,QParallelAnimationGroup,QFutureWatcherVoid,QFutureWatcherQString,QCoapReply,QCoapResourceDiscoveryReply,QCoapClient,QXYModelMapper,QVXYModelMapper,QStackedBarSeries,QSplineSeries,QPieSlice,QPieSeries,QPieModelMapper,QVPieModelMapper,QPercentBarSeries,QLogValueAxis,QLegendMarker,QXYLegendMarker,QPieLegendMarker,QLegend,QHorizontalStackedBarSeries,QHorizontalPercentBarSeries,QHorizontalBarSeries,QHXYModelMapper,QHPieModelMapper,QDateTimeAxis,QColorAxis,QChartView,QChart,QPolarChart,QCategoryAxis,QCandlestickSet,QCandlestickSeries,QCandlestickModelMapper,QVCandlestickModelMapper,QHCandlestickModelMapper,QCandlestickLegendMarker,QBoxSet,QBoxPlotSeries,QBoxPlotModelMapper,QVBoxPlotModelMapper,QHBoxPlotModelMapper,QBoxPlotLegendMarker,QBarModelMapper,QVBarModelMapper,QHBarModelMapper,QBarLegendMarker,QAreaSeries,QAreaLegendMarker,QLowEnergyService,QLowEnergyController,QBluetoothSocket,QBluetoothServiceDiscoveryAgent,QBluetoothLocalDevice,QBluetoothDeviceDiscoveryAgent,QBluetoothServer,QTextureWrapMode,QStencilTestArguments,QStencilOperationArguments,QRenderCaptureReply,QRenderCapabilities,QPickEvent,QPickTriangleEvent,QPickPointEvent,QPickLineEvent,QGraphicsApiFilter,QWheelEvent,QMouseEvent,QKeyEvent,Qt3DWindow,QNode,QTechnique,QShaderProgramBuilder,QShaderProgram,QShaderImage,QRenderTargetOutput,QRenderState,QStencilTest,QStencilOperation,QStencilMask,QSeamlessCubemap,QScissorTest,QRasterMode,QPolygonOffset,QPointSize,QNoDepthMask,QMultiSampleAntiAliasing,QLineWidth,QFrontFace,QDithering,QDepthTest,QDepthRange,QCullFace,QColorMask,QClipPlane,QBlendEquationArguments,QBlendEquation,QAlphaTest,QAlphaCoverage,QRenderPass,QPickingSettings,QParameter,QFrameGraphNode,QWaitFence,QViewport,QTechniqueFilter,QForwardRenderer,QSubtreeEnabler,QSortPolicy,QSetFence,QRenderTargetSelector,QRenderSurfaceSelector,QRenderStateSet,QRenderPassFilter,QRenderCapture,QProximityFilter,QNoPicking,QNoDraw,QMemoryBarrier,QLayerFilter,QFrustumCulling,QDispatchCompute,QClearBuffers,QCameraSelector,QBufferCapture,QBlitFramebuffer,QFilterKey,QEffect,QAbstractTextureImage,QTextureImage,QPaintedTextureImage,QAbstractTexture,QTextureRectangle,QTextureLoader,QTextureCubeMapArray,QTextureCubeMap,QTextureBuffer,QTexture3D,QTexture2DMultisampleArray,QTexture2DMultisample,QTexture2DArray,QTexture2D,QTexture1DArray,QTexture1D,QSharedGLTexture,QAxisSetting,QAxis,QAction,QAbstractPhysicalDevice,QMouseDevice,QKeyboardDevice,QAbstractAxisInput,QButtonAxisInput,QAnalogAxisInput,QAbstractActionInput,QInputSequence,QInputChord,QActionInput,QSpriteSheetItem,QAbstractSpriteSheet,QSpriteSheet,QSpriteGrid,QJoint,QGeometryView,QTorusGeometryView,QSphereGeometryView,QPlaneGeometryView,QCylinderGeometryView,QCuboidGeometryView,QConeGeometryView,QGeometry,QTorusGeometry,QSphereGeometry,QPlaneGeometry,QExtrudedTextGeometry,QCylinderGeometry,QCuboidGeometry,QConeGeometry,QEntity,QCamera,QText2DEntity,QSkyboxEntity,QAbstractCameraController,QOrbitCameraController,QFirstPersonCameraController,QComponent,QShaderData,QSceneLoader,QRenderTarget,QRenderSettings,QObjectPicker,QMaterial,QTextureMaterial,QPhongMaterial,QPhongAlphaMaterial,QPerVertexColorMaterial,QNormalDiffuseSpecularMapMaterial,QNormalDiffuseMapMaterial,QNormalDiffuseMapAlphaMaterial,QMorphPhongMaterial,QMetalRoughMaterial,QGoochMaterial,QDiffuseSpecularMaterial,QDiffuseSpecularMapMaterial,QDiffuseMapMaterial,QLevelOfDetail,QLevelOfDetailSwitch,QLayer,QEnvironmentLight,QComputeCommand,QCameraLens,QAbstractRayCaster,QScreenRayCaster,QRayCaster,QAbstractLight,QSpotLight,QPointLight,QDirectionalLight,QFrameAction,QMouseHandler,QLogicalDevice,QKeyboardHandler,QInputSettings,QAxisAccumulator,QTransform,QCoreSettings,QBuffer,QBoundingVolume,QPickingProxy,QGeometryRenderer,QMesh,QTorusMesh,QSphereMesh,QPlaneMesh,QExtrudedTextMesh,QCylinderMesh,QCuboidMesh,QConeMesh,QAttribute,QAspectEngine,QArmature,QAbstractSkeleton,QSkeletonLoader,QSkeleton,QAbstractAspect,QRenderAspect,QLogicAspect,QInputAspect,QMorphTarget,QClock,QChannelMapper,QAnimationGroup,QAnimationController,QAnimationAspect,QAbstractClipBlendNode,QLerpClipBlend,QClipBlendValue,QAdditiveClipBlend,QAbstractClipAnimator,QClipAnimator,QBlendedClipAnimator,QAbstractChannelMapping,QSkeletonMapping,QChannelMapping,QAbstractAnimationClip,QAnimationClipLoader,QAnimationClip,QAbstractAnimation,QVertexBlendAnimation,QMorphingAnimation,QKeyframeAnimation摘要
属性
objectNameᅟ- 此对象的名称
方法
def
__init__()def
blockSignals()def
children()def
connect()def
disconnect()def
dumpObjectInfo()def
dumpObjectTree()def
dynamicPropertyNames()定义
emit()定义
findChild()定义
inherits()定义
killTimer()定义
objectName()定义
parent()定义
property()定义
receivers()定义
sender()定义
setParent()定义
startTimer()定义
thread()定义
tr()
虚方法#
定义
childEvent()定义
event()定义
metaObject()定义
timerEvent()
插槽#
信号#
静态函数#
def
connect()def
disconnect()
注意
本文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建问题报告来告诉我们。
详细描述
黄豆类QObject(QObject)是Qt的对象模型的核心。在这个模型中,最核心的功能是一种强大的机制,称为信号和槽。您可以使用connect()方法将信号连接到槽,并使用disconnect()方法断开连接。为了避免无限循环的通知,您可以暂时使用blockSignals()方法阻止信号。受保护的函数connectNotify()和disconnectNotify()使跟踪连接成为可能。QObjects以对象树的形式组织。当您使用另一个对象作为父对象创建一个
QObject时,该对象将自动添加到父对象的children()列表中。父对象拥有该对象;即,它会在其析构函数中自动删除其子对象。您可以使用findChild()或findChildren()方法按名称查找对象,并且可以选择类型。每个对象都有一个
objectName(),并且可以通过相应的metaObject()(参见className())找到其类名。您可以使用inherits()函数确定该对象的类是否从QObject继承层次中继承。当对象被删除时,它会发出
destroyed()信号。您可以捕获此信号,以避免对QA6对象的悬挂引用。QObjects可以通过
event()接收事件并通过installEventFilter()和eventFilter()过滤其他对象的事件。详情请参阅childEvent(),该方法可以被重写以捕获子对象事件。最后但同样重要的是,
QObject为Qt提供了基本的定时器支持;有关定时器的高级支持,请参阅QTimer。请注意,对于实现信号、槽或属性的任何对象,宏
Q_OBJECT是必需的。您还需在源文件上运行元对象编译器。我们强烈建议在所有QObject的子类中使用此宏,无论它们是否实际使用信号、槽和属性,因为不这样做可能会导致某些功能表现出奇特的行。所有Qt小部件都继承了
QObject。方便函数isWidgetType()返回一个对象是否实际上是一个小部件。它的速度比qobject_cast<QWidget *>(obj)或obj->inherits(“QWidget”)快得多。某些
QObject函数,例如children(),返回一个QObjectList。`QObjectList`是`QList<`objc`QObject>***`的别名。线程亲和度#
一个
QObject实例被认为有一个线程亲和度,或者说它位于某个线程中。当一个QObject收到一个queued signal或一个posted event时,槽或事件处理器将在此对象所在的线程中运行。注意
如果一个
QObject没有线程相关性(即thread()返回零),或者它存在于没有运行事件循环的线程中,那么它无法接收队列信号或发布的事件。默认情况下,一个
QObject存在于它被创建的线程中。可以使用thread()查询对象的线程相关性,并使用moveToThread()进行更改。所有QObjects必须存在于与它们的父对象相同的线程中。因此
如果两个涉及的QObjects存在于不同的线程中,
setParent()将会失败。当一个
QObject转移到另一个线程时,其所有子对象也会自动移动。如果
QObject有一个父对象,moveToThread()将失败。如果在
run()中创建QObjects,它们不能成为QThread对象的子对象,因为QThread不存在于调用run()的线程中。
注意
QObject的成员变量不会自动成为它的子对象。父-child关系必须通过传递指向子对象构造函数的指针,或者通过调用setParent()来设置。不进行此步骤,当调用moveToThread()时,对象的成员变量将保留在旧线程中。没有拷贝构造函数或赋值运算符
QObject没有复制构造函数和赋值运算符。这是设计上的考虑。实际上,尽管它们被声明了,但是在一个用宏Q_DISABLE_COPY()标记的private部分中。实际上,所有从QObject派生来的 Qt 类(无论是直接还是间接)都使用这个宏来声明它们的复制构造函数和赋值运算符为私有的。关于这一点,在 QtQObject页上的 Identity vs Value 对话中可以找到解释。主要后果是,在可能的情况下,你应该使用指向
QObject(或您的QObject子类)的指针,而不是使用您的QObject子类作为值。例如,如果没有复制构造函数,就不能将QObject的子类用作存储在一个容器类中的值。您必须存储指针。自动连接#
Qt 的元对象系统提供了一种机制来自动在
QObject子类及其子类之间连接信号和槽。只要对象使用合适的对象名称定义,并且槽遵循简单的命名规则,就可以通过connectSlotsByName()函数在运行时执行此连接。uic 生成的代码调用此函数,以在用 Qt Designer 创建的表单上执行自动连接。有关在 Qt Designer 中使用自动连接的更多信息,请参阅 Qt Designer 手册的“使用 Designer UI 文件”部分。
动态属性#
可以在运行时向和从
QObject实例添加和删除动态属性。动态属性不需要在编译时声明,但仍提供与静态属性相同的优势,并且使用相同的 API 来操作 - 使用property()读取它们和使用setProperty()编写它们。Qt Designer 支持动态属性,并且标准 Qt 小部件以及用户创建的表单都可以具有动态属性。
国际化 (I18n)#
所有
QObject子类都支持 Qt 的翻译功能,这使得将应用程序的用户界面翻译成不同的语言成为可能。要使用户可见的文本可翻译,必须将其包裹在对
tr()函数的调用中。这在本指南中“编写可翻译的源代码”部分有详细说明。另见
QMetaObjectQPointerQObjectCleanupHandlerQ_DISABLE_COPY()ObjectTrees & Ownership注意
当使用
from __feature__ import true_property时,可以直接使用属性;否则,通过访问器函数。- property objectNameᅟ: str#
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
此属性持有此对象的名称。
您可以通过
findChild()按名称(和类型)查找对象。您可以使用findChildren()查找一组对象。qDebug("MyClass.setPrecision(): (%s) invalid precision %f", qPrintable(objectName()), newPrecision)
默认情况下,此属性包含一个空字符串。
构建一个具有父对象
parent的对象。对象的父对象可以被视为对象的所有者。例如,一个对话框是其包含的“确定”和“取消”按钮的父对象。
父对象的析构函数将销毁所有子对象。
将
parent设置为None将构建一个没有父对象的对象。如果该对象是窗口小部件,它将成为顶级窗口。- blockSignals(b)#
- 参数:
b – bool
- 返回类型:
bool
如果
block为真,则此对象发出的信号被阻止(即发出信号不会调用连接到它的任何内容)。如果block为假,则不会发生此类阻塞。返回值是
signalsBlocked()的上一个值。请注意,即使此对象的信号已被阻止,也会发出
destroyed()信号。在阻止期间发出的信号不会被缓冲。
- childEvent(event)#
- 参数:
event –
QChildEvent
此事件处理程序可以在子类中重新实现以接收子事件。事件通过
event参数传递。ChildAdded和ChildRemoved事件是在添加或删除子对象时发送给对象的。在两种情况下,您只能依赖子对象是一个QObject,或者如果isWidgetType()返回true,则是一个 QWidget。(这是因为,在ChildAdded的情况下,子对象尚未完全构建,而在ChildRemoved的情况下,它可能已经被销毁)。ChildPolished事件在子项被修饰或在修饰的子项被添加时发送给小部件。如果收到子项修饰事件,子项的构造通常已经完成。但是,这并不保证,在执行小部件构造函数期间可能会发送多个修饰事件。对于每个子部件,您将收到一个
ChildAdded事件,零个或多个ChildPolished事件,以及一个ChildRemoved事件。如果子项在被添加后立即被移除,则省略
ChildPolished事件。如果一个子项在构造和销毁过程中被修饰多次,您可能会为同一子项接收多个子项修饰事件,每次都有不同的虚拟表。另见
此函数返回子对象列表。
QObjectList类在<QObject>头文件中定义,如下所示第一个添加的子项是列表中的第一个对象,最后一个添加的子项是列表中的最后一个对象,即新子项被添加到列表的末尾。
请注意,当同级的 widgets 被提升或降低时,列表顺序会改变。被提升的 widget 成为列表中的最后一个对象,而被降低的 widget 成为列表中的第一个对象。
- connect(signal, receiver, method[, type=Qt.AutoConnection])#
- 参数:
signal – 字符串
receiver –
QObjectmethod – 字符串
type –
ConnectionType
- 返回类型:
连接
- connect(signal, functor[, type=Qt.AutoConnection])
- 参数:
signal – 字符串
functor –
PyCallabletype –
ConnectionType
- 返回类型:
连接
- connect(sender, signal, member[, type=Qt.AutoConnection])
- 参数:
sender –
QObjectsignal – 字符串
member – 字符串
type –
ConnectionType
- 返回类型:
连接
此函数重载了
connect().将发送者对象的
signal连接到此对象的method.相当于
connect(sender, signal, this, method, type)每次建立的连接都会发出一个信号,因此重复连接会发出两个信号。您可以使用
disconnect()断开连接。另见
- static connect(sender, signal, receiver, member[, type=Qt.AutoConnection])
- 参数:
sender –
QObjectsignal – 字符串
receiver –
QObjectmember – 字符串
type –
ConnectionType
- 返回类型:
连接
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
从发送者对象的
signal创建到接收者对象method的给定type连接。返回连接句柄,可用于稍后断开连接。指定信号和方法时,必须使用
SIGNAL()和SLOT()宏,例如label = QLabel() scrollBar = QScrollBar() QObject.connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)))
此示例确保标签始终显示当前滚动条值。请注意,信号和槽参数不应包含任何变量名称,只有类型。例如以下不会工作并返回 false
# WRONG QObject.connect(scrollBar, SIGNAL(valueChanged(int value)), label, SLOT(setNum(int value)))
信号也可以连接到另一个信号
class MyWidget(QWidget): Q_OBJECT # public MyWidget() # signals def buttonClicked(): # private myButton = QPushButton() def __init__(self): myButton = QPushButton(self) connect(myButton, SIGNAL(clicked()), self, SIGNAL(buttonClicked()))
在此示例中,
MyWidget构造函数从私有成员变量中转发信号,并将其以与MyWidget相关的名称提供。信号可以连接到多个槽和信号。许多信号可以连接到单个槽。
如果信号连接到多个槽,则当信号发出时,槽按建立连接的相同顺序激活。
该函数如果成功将信号连接到槽,则返回一个代表连接句柄的
Connection。如果无法创建连接,例如,如果QObject无法验证signal或method的存在,或者它们的签名字符不一致,则连接句柄将无效。您可以将其强制转换为 bool 类型来检查是否存在。默认情况下,每建立一次连接都会发出一个信号;重复连接则会发出两个信号。您可以通过单次调用
disconnect()调用以断开所有这些连接。如果您传入UniqueConnection类型,则只有在它不是重复的时才会建立连接。如果已存在重复(同一对象上的完全相同的信号和槽),则连接将失败,connect将返回一个无效的Connection。注意
Qt::UniqueConnections 不适用于 lambda 函数、非成员函数和函子;它们仅适用于将成员函数连接起来。
type参数是一个可选的参数,它描述了要建立的连接类型。特别是,它决定了特定信号是立即递送给槽还是排队稍后发送。如果信号排队,参数必须是 Qt 的元对象系统中已知的类型,因为 Qt 需要复制这些参数以存储在幕后的事件中。如果你尝试使用排队连接并得到了错误消息QObject.connect: Cannot queue arguments of type 'MyType' (Make sure 'MyType' is registered using qRegisterMetaType().)
在建立连接之前,通过调用
qRegisterMetaType()注册数据类型。另见
disconnect()、sender()、qRegisterMetaType()、Q_DECLARE_METATYPE()之间的差异、基于 String 的和基于 Functor 的 连接之间的区别。- static connect(sender, signal, context, functor[, type=Qt.AutoConnection])
- 参数:
sender –
QObjectsignal – 字符串
context –
QObjectfunctor –
PyCallabletype –
ConnectionType
- 返回类型:
连接
- static connect(sender, signal, functor[, type=Qt.AutoConnection])
- 参数:
sender –
QObjectsignal – 字符串
functor –
PyCallabletype –
ConnectionType
- 返回类型:
连接
- static connect(sender, signal, receiver, method[, type=Qt.AutoConnection])
- 参数:
sender –
QObject信号 –
QMetaMethodreceiver –
QObject方法 –
QMetaMethodtype –
ConnectionType
- 返回类型:
连接
从发送者对象的
signal创建到接收者对象method的给定type连接。返回连接句柄,可用于稍后断开连接。如果无法创建连接,例如参数无效,则连接句柄将无效。您可以通过将其断言为布尔值来检查
Connection是否有效。此函数与
connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)的工作方式相同,但它使用QMetaMethod来指定信号和方法。另见
ConnectionType type)- connectNotify(signal)#
- 参数:
信号 –
QMetaMethod
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
当此对象中的
signal连接到某个项时,将调用此虚拟函数。如果您想将
signal与特定信号进行比较,可以按以下方式使用fromSignal()if signal == QMetaMethod.fromSignal(MyObject.valueChanged): # signal is valueChanged
警告
此函数违反了面向对象的原则——模块化。但是,如果需要在连接到信号时仅执行昂贵的初始化,它可能很有用。
警告
此函数从执行连接的线程中调用,这可能与对象所在的线程不同。此函数也可能在
QObject内部互斥锁锁定的情况下调用。因此,不允许从您的重新实现中重新进入任何QObject函数,包括isSignalConnected()。如果您的重新实现中锁定了一个互斥锁,请确保不要在该互斥锁被持有的其他地方调用QObject函数,否则会导致死锁。此事件处理程序可以在子类中重新实现以接收自定义事件。自定义事件是用户定义的事件,其类型值至少与枚举
Type中的User项一样大,通常是一个QEvent的子类。事件通过event参数传递。- deleteLater()#
安排此对象进行删除。
当控制权返回到事件循环时,将删除此对象。如果在调用此函数时事件循环未在运行(例如,在调用
exec()之前调用deleteLater()),则对象将在启动事件循环后删除。如果在主事件循环已停止之后调用deleteLater(),则对象不会删除。如果在没有运行的事件循环的线程中的对象上调用deleteLater(),则对象将在线程完成时销毁。请注意,进入和退出新的事件循环(例如,通过打开模态对话框)不会执行延迟删除;为了对象被删除,控制权必须从调用deleteLater()的事件循环返回。这不适用于在先前嵌套事件循环仍在运行时删除的对象:Qt事件循环将在新的嵌套事件循环开始时删除这些对象。
在Qt不通过例如
exec()或exec()来驱动事件调度程序的情况下,将不会自动处理延迟删除。为了确保在这种情况下进行延迟删除,可以使用以下工作方式const auto *eventDispatcher = QThread::currentThread()->eventDispatcher(); QObject::connect(eventDispatcher, &QAbstractEventDispatcher::aboutToBlock, QThread::currentThread(), []{ if (QThread::currentThread()->loopLevel() == 0) QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); } );
另见
destroyed()QPointer在对象
obj被销毁之前,此信号会被立即发射,通知所有QPointer的实例,且该信号不能被阻塞。该信号发射后,对象的全部子对象将被立即销毁。
另见
deleteLater()QPointer- static disconnect(connection)#
- 参数:
connection –
Connection- 返回类型:
bool
断开连接。
如果
connection无效或已被断开,则不执行任何操作,并返回false。另见
- disconnect(signal, receiver, member)
- 参数:
signal – 字符串
receiver –
QObjectmember – 字符串
- 返回类型:
bool
此函数覆盖了
disconnect()。从接收器的
method中断开signal。当涉及的对象之一被销毁时,信号-槽连接将被移除。
注意
断开所有信号-槽连接还会断开
destroyed()信号(如果它已被连接)。这样做可能会对依赖于此信号进行资源清理的类产生不利影响。建议仅断开应用程序代码连接的特定信号。- disconnect(signal, functor)
- 参数:
signal – 字符串
functor –
PyCallable
- 返回类型:
bool
- static disconnect(sender, signal, receiver, member)
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
从对象
sender的对象中移除signal在对象receiver中的method。如果连接成功断开,则返回true;否则返回false。当涉及的对象之一被销毁时,信号-槽连接将被移除。
断开操作一般有三种方式,如下面的示例所示。
断开对象信号的所有连接
disconnect(myObject, None, None, None)
相当于非静态重载函数
myObject.disconnect()
断开特定信号的所有连接
disconnect(myObject, SIGNAL(mySignal()), None, None)
相当于非静态重载函数
myObject.disconnect(SIGNAL(mySignal()))
断开特定接收器
disconnect(myObject, None, myReceiver, None)
相当于非静态重载函数
myObject.disconnect(myReceiver)
在代码中,《None》可作为通配符使用,分别表示“任何信号”、“任何接收对象”或“接收对象中的任何槽”。
sender必须不能是《None》。 (您不能在单个调用中从多个对象断开信号。)如果
signal是《None》,它将使receiver如果
receiver是《None》,它将使任何与signal连接的内容断开。如果不是,则不会断开除了receiver如果
method是《None》,它将使任何与receiver连接的内容断开连接。如果不如此,则只有名称为method的槽将断开连接,其他所有的槽将保持不变。如果省略receiver,则method- static disconnect(sender, signal, functor)
- 参数:
sender –
QObjectsignal – 字符串
functor –
PyCallable
- 返回类型:
bool
- static disconnect(sender, signal, receiver, member)
- 参数:
sender –
QObject信号 –
QMetaMethodreceiver –
QObject成员 -
QMetaMethod
- 返回类型:
bool
从对象
sender的对象中移除signal在对象receiver中的method。如果连接成功断开,则返回true;否则返回false。此函数提供了与
disconnect(const QObject *sender, const char *, signal, const QObject *receiver, const char *method)相同的可能性,但使用此外,如果以下条件之一成立,则此函数返回
false并且没有任何信号和槽会被断开:信号不是发送者类或其父类的一个成员。
方法不是接收者类或其父类的一个成员。
信号实例不表示一个信号。
QMetaMethod()可以作为通配符使用,表示“任何信号”或“接收对象中的任何槽”。同样地,对于receiver,《None》也可以用来表示“任何接收对象”。在这种情况下,方法应该是QMetaMethod。参数注意
断开所有信号-槽连接还会断开
destroyed()信号(如果它已被连接)。这样做可能会对依赖于此信号进行资源清理的类产生不利影响。建议仅断开应用程序代码连接的特定信号。另见
disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)- disconnect(receiver[, member=None])
- 参数:
receiver –
QObjectmember – 字符串
- 返回类型:
bool
此函数覆盖了
disconnect()。断开此对象的所有信号与
receiver的method的连接。当涉及的对象之一被销毁时,信号-槽连接将被移除。
- disconnectNotify(signal)#
- 参数:
信号 –
QMetaMethod
当此对象中的某个信号被断开连接时,将调用此虚函数。
查阅
connectNotify()了解如何将信号与特定信号进行比较的示例。如果此对象的所有信号都已断开连接(例如,
disconnect()的信号参数为None),则disconnectNotify只调用一次,并且signal将是一个无效的QMetaMethod(isValid()返回false)。警告
此函数违反了面向对象模块化的原则。然而,它可能有助于优化对昂贵资源的访问。
警告
此函数在执行断开连接操作的线程中被调用,这可能与该对象所在的线程不同。此函数还可能在该对象的内部互斥锁被锁定时调用。因此,不允许从你的重实现中重新进入任何
QObject函数,包括isSignalConnected()。如果你在重实现中锁定互斥锁,请确保不要在其他地方携带此互斥锁调用QObject函数,否则可能会导致死锁。- dumpObjectInfo()#
将此对象关于信号连接等信息输出到调试输出。
- dumpObjectTree()#
将子对象的树形结构输出到调试输出。
- dynamicPropertyNames()#
- 返回类型:
QByteArray对象的列表
返回使用
setProperty()动态添加到对象的所有属性名称。- emit(arg__1, arg__2)#
- 参数:
arg__1 – 字符串
arg__2 –
- 返回类型:
bool
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
这个虚拟函数接收对象的events,并且如果对象识别并处理了事件
e,则返回true。可以在 reimplement 事件() 函数来自定义对象的行为。
确保对于你未处理的所有事件,都调用父事件类的实现。
示例
class MyClass(QWidget): Q_OBJECT # public MyClass(QWidget parent = None) ~MyClass() bool event(QEvent* ev) override if ev.type() == QEvent.PolishRequest: # overwrite handling of PolishRequest if any doThings() return True else:if (ev.type() == QEvent.Show) { # complement handling of Show if any doThings2() QWidget.event(ev) return True # Make sure the rest of events are handled return QWidget.event(ev)
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
如果此对象已安装为
watched对象的事件过滤器,则过滤事件。在您的函数 reimplement 中,如果您想过滤
event,即停止进一步的处理,则返回true;否则返回false。示例
class MainWindow(QMainWindow): # public MainWindow() # protected bool eventFilter(QObject obj, QEvent ev) override # private textEdit = QTextEdit() def __init__(self): textEdit = QTextEdit() setCentralWidget(textEdit) textEdit.installEventFilter(self) def eventFilter(self, QObject obj, QEvent event): if obj == textEdit: if event.type() == QEvent.KeyPress: keyEvent = QKeyEvent(event) print("Ate key press", keyEvent.key()) return True else: return False else: # pass the event on to the parent class return QMainWindow.eventFilter(obj, event)
注意在上面的示例中,未处理的事件被传递到基类的 eventFilter() 函数,因为基类可能已经 reimplement 事件Filter() 以其自身内部用途。
某些事件,如
ShortcutOverride,必须显式接受(通过在它们上调用accept())以防止传播。- findChild(type[, name={}[, options=Qt.FindChildrenRecursively]])#
- 参数:
type –
PyTypeObjectname – 字符串
options –
FindChildOption组合
- 返回类型:
对象
要查找一定类型的 QObject 的子对象,此函数的第一个参数应该是子对象的类型,第二个参数是子对象的名称
... parent = QWidget() ... # The first argument must be the child type child1 = parent.findChild(QPushButton, "child_button") child2 = parent.findChild(QWidget, "child_widget")
- findChildren(type, pattern[, options=Qt.FindChildrenRecursively])#
- 参数:
type –
PyTypeObjectpattern –
QRegularExpressionoptions –
FindChildOption组合
- 返回类型:
Py序列
- findChildren(type[, name={}[, options=Qt.FindChildrenRecursively]])
- 参数:
type –
PyTypeObjectname – 字符串
options –
FindChildOption组合
- 返回类型:
Py序列
与 findChild 方法类似,第一个参数应该是子对象的类型。
- inherits(classname)#
- 参数:
classname – 字符串
- 返回类型:
bool
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
如果此对象是一个继承自
className的类的实例,或者是一个继承自QObject并继承自className的子类的实例,则返回true;否则返回false。一个类视为继承自身。
示例
timer = QTimer() # QTimer inherits QObject() timer.inherits("QTimer") # returns true timer.inherits("QObject") # returns true timer.inherits("QAbstractButton") # returns false # QVBoxLayout inherits QObject and QLayoutItem layout = QVBoxLayout() layout.inherits("QObject") # returns true layout.inherits("QLayoutItem") # returns true (even though QLayoutItem is not a QObject)
如果您需要确定一个对象是否是特定类的实例以进行类型转换,请考虑使用
qobject_cast<Type *>(object) 代替。另见
metaObject()qobject_cast警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
在此对象上安装事件过滤器
filterObj。例如monitoredObj.installEventFilter(filterObj)
事件过滤器是一个对象,它接收发送给该对象的所有事件。过滤器可以停止事件或将其转发到该对象。事件过滤器
filterObj通过其eventFilter()方法接收事件。如果事件应该被过滤(即停止),则eventFilter()方法必须返回 true;否则必须返回 false。如果单个对象上安装了多个事件过滤器,则最后安装的过滤器首先被激活。
如果已经为此对象安装了
filterObj,则此函数会将其移动,以便它表现得像是最后安装的。以下是一个
KeyPressEater类的示例,它吞噬它监视对象的关键按键class KeyPressEater(QObject): Q_OBJECT ... # protected bool eventFilter(QObject obj, QEvent event) override def eventFilter(self, QObject obj, QEvent event): if event.type() == QEvent.KeyPress: keyEvent = QKeyEvent(event) qDebug("Ate key press %d", keyEvent.key()) return True else: # standard event processing return QObject.eventFilter(obj, event)
以下是将其安装到两个小部件上的方法
keyPressEater = KeyPressEater(self) pushButton = QPushButton(self) listView = QListView(self) pushButton.installEventFilter(keyPressEater) listView.installEventFilter(keyPressEater)
例如,QShortcut 类使用此技术来拦截快捷键的按下。
警告
如果你在
eventFilter()函数中删除了接收对象,请确保返回 true。如果你返回 false,Qt 将将事件发送到已删除的对象,程序将崩溃。请注意,过滤对象必须与该对象位于同一线程中。如果
filterObj位于另一个线程中,则此函数不起作用。如果在调用此函数后,filterObj或此对象被移动到另一个线程,则事件过滤器将不会被调用,直到两个对象的线程亲和力再次相同(它不会被移除)。- isQuickItemType()#
- 返回类型:
bool
如果对象是 QQuickItem,则返回
true;否则返回false。调用此函数相当于调用
inherits("QQuickItem"),但其速度更快。- isSignalConnected(signal)#
- 参数:
信号 –
QMetaMethod- 返回类型:
bool
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
如果
signal与至少一个接收器连接,则返回true;否则返回false。signal必须是该对象的一个信号成员,否则行为未定义。valueChangedSignal = QMetaMethod.fromSignal(MyObject.valueChanged) if isSignalConnected(valueChangedSignal): data = QByteArray() data = get_the_value() # expensive operation valueChanged.emit(data)
如上述代码片段所示,您可以使用此函数来避免昂贵的初始化或发出没有人监听的信号。然而,在多线程应用程序中,连接可能会在返回函数后和信号发出前更改。
警告
此函数违反了面向对象模块化原则。特别是,不应从重写
connectNotify()或disconnectNotify()处调用此函数,因为它们可能从任何线程调用。- isWidgetType()#
- 返回类型:
bool
如果对象是小部件,则返回
true;否则返回false。调用此函数等同于调用
inherits("QWidget"),但速度更快。- isWindowType()#
- 返回类型:
bool
如果对象是窗口,则返回
true;否则返回false。调用此函数等同于调用
inherits("QWindow"),但速度更快。- killTimer(id)#
- 参数:
id – int
通过定时器标识符
id终止定时器。当一个定时器事件开始时,定时器标识符由
startTimer()返回。- metaObject()#
- 返回类型:
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
返回指向该对象元对象的指针。
元对象包含有关继承自
QObject的类的信息,例如类名、基类名、属性、信号和槽。每个包含Q_OBJECT宏的QObject子类都将具有元对象。信号/槽连接机制和属性系统需要元对象信息。
inherits()函数也使用元对象。如果您没有实际对象实例的指针,但仍想访问类的元对象,您可以使用staticMetaObject。
示例
obj = QPushButton() obj.metaObject().className() # returns "QPushButton" QPushButton.staticMetaObject.className() # returns "QPushButton"
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
修改该对象及其子对象的线程亲和度,并在成功时返回
true。如果对象有父对象,则不能移动。事件处理将在targetThread中继续。为了将对象移动到主线程,使用 QApplication::instance() 获取对当前应用的指针,然后使用 QApplication::thread() 获取应用程序所在的线程。例如
myObject.moveToThread(QApplication.instance().thread())
如果
targetThread为None,则此对象及其子对象的所有事件处理将停止,因为它们不再与任何线程相关联。请注意,对象的所有活动计时器都将被重置。计时器首先在当前线程中停止,然后在
targetThread中(以相同的间隔)重新启动。因此,不断在线程之间移动对象可能会无限期地推迟计时器事件。在更改线程亲和度之前,向此对象发送一个
ThreadChange事件。您可以处理此事件以执行任何特殊处理。注意,如果targetThread不是None,则将在此对象上投放的所有新事件将在targetThread中处理:当它是None时,此对象或其子对象的事件处理都不会发生,因为它们已不再与任何线程相关联。警告
这个函数不是线程安全的;当前线程必须与当前线程亲和度相同。换句话说,这个函数只能“推送”对象从当前线程到另一个线程,不能从任何任意线程“拉取”对象到当前线程。不过,有一个例外:没有线程亲和度的对象可以被“拉取”到当前线程。
另见
- objectName()#
- 返回类型:
字符串
objectNameᅟ属性的获取器。- objectNameChanged(objectName)#
- 参数:
objectName – 字符串
当对象名称被更改后,将发出此信号。新对象名称作为
objectName传递。另见
objectNameᅟ属性的通告信号。返回指向父对象的指针。
- property(name)#
- 参数:
name – 字符串
- 返回类型:
对象
返回对象名称属性
name的值。如果不存在这样的属性,返回的可变对象将无效。
所有可用属性的详细信息可通过
metaObject()和dynamicPropertyNames()获取。另见
setProperty()isValid()metaObject()dynamicPropertyNames()- receivers(signal)#
- 参数:
signal – 字符串
- 返回类型:
int
警告
本节包含将从 C++ 自动转换为 Python 的代码片段,可能包含错误。
返回连接到
signal的接受器数量。由于槽和信号都可以用作信号接收器,并且相同的连接可以多次进行,因此接收器数量与从本信号进行的连接数量相同。
调用此函数时,您可以使用
SIGNAL()宏传递一个特定的信号if receivers(SIGNAL(valueChanged(QByteArray))) > 0: data = QByteArray() get_the_value(data) # expensive operation valueChanged.emit(data)
从本对象中移除事件过滤器对象
obj。如果尚未安装此类事件过滤器,则请求将被忽略。当此对象被销毁时,将自动移除此对象的所有事件过滤器。
始终可以安全地移除事件过滤器,甚至在事件过滤器激活期间(即从
eventFilter()函数中)。如果在由信号激活的槽中调用,则返回发送信号的指针;否则返回
None。指针仅在从该对象线程上下文中调用此函数的槽执行期间有效。如果发送者被销毁,或者槽与发送者的信号断开连接,此函数返回的指针将变得无效。
警告
此函数违反了面向对象的模块化原则。但是,当许多信号连接到单个槽时,访问发送者可能很有用。
- senderSignalIndex()#
- 返回类型:
int
返回正在执行槽的信号的元方法索引,该信号是
sender()返回的类的成员。如果调用时未在由信号激活的槽中,则返回 -1。对于默认参数的信号,此函数将始终返回所有参数的索引,而不管哪个被
connect()使用。例如,信号destroyed(QObject *obj = \nullptr)将有两个不同的索引(有与没有参数的),但此函数将始终返回有参数的索引。在信号重载具有不同参数的情况下不适用。警告
此函数违反了面向对象的模块化原则。但是,当许多信号连接到单个槽时,获取信号索引可能很有用。
警告
当通过来自与该对象线程不同的线程的
DirectConnection从槽调用时,此函数的返回值是无效的。在这种情况下不要使用此函数。- setObjectName(name)#
- 参数:
name – 字符串
这是一个重载函数。
将对象设置为
parent的子对象。- setProperty(name, value)#
- 参数:
name – 字符串
值 – 对象
- 返回类型:
bool
将对象的
name属性的值设为value。如果该属性在类中使用了
Q_PROPERTY定义,则成功时返回真,否则返回假。如果该属性没有使用Q_PROPERTY定义,因此没有列出在元对象中,它将作为一个动态属性添加,并返回假。所有可用属性的详细信息可通过
metaObject()和dynamicPropertyNames()获取。动态属性可以使用
property()重新查询,并且可以通过将属性值设置为非法的QVariant来移除。更改动态属性的值将导致向对象发送一个QDynamicPropertyChangeEvent。- signalsBlocked()#
- 返回类型:
bool
如果信号被阻塞返回
true,否则返回false。默认情况下,信号不会被阻塞。
这是一个重载函数,它将启动一个类型为
timerType、超时时间为interval毫秒的计时器。这相当于调用startTimer(std::chrono::milliseconds{interval}, timerType);
返回对象所在的线程。
- timerEvent(event)#
- 参数:
event –
QTimerEvent
此事件处理器可以在子类中重写,以获取对象的计时器事件。
QTimer为计时器功能提供更高级别的接口,并提供有关计时器的更多信息。计时器事件通过event参数传递。- tr(sourceText[, disambiguation=None[, n=-1]])#
- 参数:
sourceText – str
disambiguation – str
n – int
- 返回类型:
字符串