获取/设置功能以更改文本和颜色
Get/Set function to change text and color
我试图创建一个名为Label的类。标签是纯文本控件。人们应该能够通过get/set函数更改标签的文本和颜色。我认为这是一种通过 get/set 函数更改标签文本的方法。但我不确定颜色。任何建议都将得到认可。
<pre>
class Label
{
private:
std::string text;
int color;
public:
Label();
void SetText(string Ntext);
void SetColor(int value);
int GetColor();
string GetText();
~Label();
};
<code>
<pre>
Label::Label()
{
}
string Label::GetText()
{
return text;
}
void Label::SetText(string Ntext)
{
text = Ntext;
}
int Label::GetColor()
{
return color;
}
void Label::SetColor(int value)
{
color = value;
}
Label::~Label()
{
}
<code>
您可以将颜色设置为包含红色蓝色和绿色的数组。
int color[3];
void SetColor(int red, int green, int blue){
this->color[0] = red;
this->color[1] = green;
this->color[2] = blue;
}
除了如何表示颜色的问题(实际上根据类的使用方式而变化,例如,它可以是简单的red
、black
、white
等字符串),另一件需要考虑的事情是,就 OOP 而言,拥有 getter 和 setter 并不好。
OOP 的思想是隐藏对象中的数据,并指示这些对象做一些有用的事情(向他们发送消息)。
使用 getter 和 setter,您可以打开内部实现(实际上与将text
和color
定义为公共属性相同。听起来不太好,对吧?但实际上就是这样,您可以像公开一样阅读和修改它们。
因此,更好的实现可能是将文本和颜色都作为构造函数参数。这样标签就有足够的信息来显示,所以你不需要有二传手/getter,像这样:
class Label
{
private:
std::string text;
int color;
public:
Label(string text, string color);
~Label();
// display the label on the `canvas`
void display(Canvas* canvas);
};
有关吸气手/二传手主题的更多信息:
- 为什么getter和setter方法是邪恶的
- 更多关于吸气手和二传手的信息
- 吉特/二传手。邪。时期。
相关文章:
- 通过样式表仅在QTabWidget中应用文本颜色一个特定选项卡
- 控制台中文本颜色异常
- 文本颜色 QPlainTextEdit QT
- 更改悬停在Gtkbutton的文本颜色
- 如何将控制台输出的文本颜色更改为红色,但如果从Powershell或CMD运行,背景将保持相同的颜色
- 设置子窗口的文本颜色
- 更改数组中元素的文本颜色
- 尝试选择文本颜色
- MFC Rich编辑控件2.0文本颜色
- 无法更改 Visual Studio 2010 中输出的文本颜色和文本背景
- 使用 conio.h 更改文本颜色时出错
- Mouseover SDL2时更改文本颜色
- 为qlineedit设置了背景图像时,如何在qlineedit中设置文本颜色
- 如何从qplaintExtedIt获取文本颜色
- 自定义图形列表视图项目不更改文本颜色
- 直接在.png加载的cimage上绘制时,将文本颜色设置为
- 静态文本颜色
- QMenu:为特定 QAction 设置文本颜色
- 如何更改代码块中的文本颜色和控制台颜色
- Win32:设置富编辑的默认字体和文本颜色