在 Qt 框架中,可以通过 objectName()
方法获取当前对象的名称。具体实现方式如下:
核心方法
QString name = this->objectName(); // 获取当前对象的名称
完整示例
#include <QDebug>
#include <QObject>
class MyClass : public QObject {
Q_OBJECT
public:
MyClass(QObject* parent = nullptr) : QObject(parent) {
setObjectName("MyObjectName"); // 设置对象名称
}
void printName() {
qDebug() << "Current object name:" << this->objectName();
}
};
// 使用示例
int main() {
MyClass obj;
obj.printName(); // 输出: Current object name: "MyObjectName"
return 0;
}
注意事项
- 名称设置:需先通过
setObjectName("Name")
设置名称,未设置时返回空字符串 - 继承要求:仅适用于继承自
QObject
的类(如 QWidget 等) - 动态修改:名称可在运行时通过
setObjectName()
修改 - 元对象系统:名称会参与 Qt 的元对象系统,可用于信号槽连接等场景
如果需要获取类名而非对象实例名,可使用 metaObject()->className()
方法。