适配器是特殊类被附加到任何 QObject -derived class and provide the interface to the external world using D-Bus. Adaptors are intended to be lightweight classes whose main purpose is to relay calls to and from the real object, possibly validating or converting the input from the external world and, thus, protecting the real object.
Unlike multiple inheritance, adaptors can be added at any time to any object (but not removed), which allows for greater flexibility when exporting existing classes. Another advantage of adaptors is to provide similar but not identical functionality in methods of the same name in different interfaces, a case which can be quite common when adding a new version of a standard interface to an object.
						In order to use an adaptor, one must create a class which inherits
						
							QDBusAbstractAdaptor
						
						. Since that is a standard
						
							QObject
						
						派生类,
						
							Q_OBJECT
						
						macro must appear in the declaration and the source file must be processed with the
						
							moc
						
						tool. The class must also contain one
						
							Q_CLASSINFO
						
						entry with the
						
"D-Bus Interface"
						
						name, declaring which interface it is exporting. Only one entry per class is supported.
					
Any public slot in the class will be accessible through the bus over messages of the MethodCall type. (See 在 D-Bus 适配器中声明槽 for more information). Signals in the class will be automatically relayed over D-Bus. However, not all types are allowed signals or slots' parameter lists: see Qt D-Bus 类型系统 了解更多信息。
Also, any property declared with Q_PROPERTY will be automatically exposed over the Properties interface on D-Bus. Since the QObject property system does not allow for non-readable properties, it is not possible to declare write-only properties using adaptors.
更多信息:
complexpong.h
							
							and
							
complexpong.cpp
							
							有展示实现为
							
								QDBusAbstractAdaptor
							
							.
						另请参阅 QDBusAbstractAdaptor .