如何将可读的C Getter和setter在QT中使用setter作为插槽
How to write readable c++ getter and setter in Qt with setter as slot
对不起问题的重大变化,请参见上面的编辑。
我正在寻找一种可读的方法来使用setter作为插槽在我的C 类中编写setter。
因为我用来在班级的底部写getter and setter,并在六个固定器附近写下。
这是我现在写作的方式:
#include <QObject>
class MyClass : public QObject
{
Q_OBJECT
public:
MyClass(...);
~MyClass();
void myPublicMethod();
public slots:
void onEvent(...);
protected:
int myVal;
//---------------------------------------------- getter and setter
public slots:
void setVal(int v);
const int getVal();
};
但是,在上一个问题上的答案(请参阅编辑)在某些开销中指出了我(我不在乎太多)和不必要的插槽用于Getter(这是提出这个问题的动机)对于使用此课程并看到一些无动力的插槽的人来说,可能会更糟。
编辑:问题的实质性更改。是:
标题:qt getter&amp;设定器作为公共插槽,坏主意?
我将所有Getter和Setter写为公共插槽。实际上,我只使用二传剂作为插槽,但将它们彼此写入一个可重读性。
这是个坏主意吗?任何副作用?
我会说这是一个坏主意,因为它毫无意义,因此会引起" wtf"(通常是不良代码的标志)。
这是毫无意义的,因为QT信号无法返回值,而Getter的唯一目的是返回值。因此,制作插槽是没有意义的。
当然,我只是在谈论Getters。设定器非常好(很有用)作为插槽。
另外,每个阶层都会有一些内存开销。不多,但要牢记。
除了额外的代码生成外,您将没有副作用。每个插槽将一些数据添加到类Meta信息 将一些代码添加到MOC生成的文件中。
您也可以用q_slot宏标记设置器。并将两个都放在同一个地方。
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 从数据库实时显示QT c++中的数据
- Qt Quick-如何仅从c++代码与qml属性交互
- 正确构造和销毁 Setter 依赖注入对象(可能使用 qt)
- 如何将可读的C Getter和setter在QT中使用setter作为插槽
- 这是更有效的Qt:构造函数与参数或默认构造函数与setter之后
- 如何重新定义Qt Creator创建getter和setter函数的方式