【发布时间】:2013-11-12 19:16:17
【问题描述】:
尽管进行了一些搜索,但我还是找不到使用 QT Creator 2.3.1 为 C++ 类自动生成 getter 和 setter 的方法。 你们知道有什么方法吗?
【问题讨论】:
标签: c++ qt qt-creator
尽管进行了一些搜索,但我还是找不到使用 QT Creator 2.3.1 为 C++ 类自动生成 getter 和 setter 的方法。 你们知道有什么方法吗?
【问题讨论】:
标签: c++ qt qt-creator
右键点击您的会员,然后点击Refactor,然后点击Generate Getter and Setter member function,您就完成了:)
在 Qt Creator 3.2.x 上,创建成员,然后单击它并按 alt+Enter :
【讨论】:
将文本光标放在类定义中的成员变量上,然后按 Alt+Enter。
【讨论】:
对我来说,右键单击、重构、创建 Getter 和 Setter 成员函数都有效,除非成员是布尔值。
【讨论】:
使用宏,可以一起创建getter、setter和signal,如下所示:
#define GETSET(type, var) \
protected: \
type m##var; \
public: \
type Get##var() const \
{\
return m##var; \
}\
void Set##var(type iVal) \
{\
m##var = iVal; \
var##Changed(iVal); \
}
并调用宏:
class Student : QObject
{
Q_OBJECT
public signals:
void NameChanged(const QString & name);
void AddressChanged(const QString & address);
void BirthDateChanged(const QDate & date);
GETSET(QString, Name)
GETSET(QString, Address)
GETSET(QDate, BirthDate)
}
【讨论】:
...Changed 信号,而 Qt 文档(属性系统)明确指出:“只有在属性真正被更改时才应该发出 NOTIFY 信号,例如,以避免在 QML 中不必要地重新评估绑定。"