gpt4 book ai didi

c++ - Qt - 计数有色细胞

转载 作者:行者123 更新时间:2023-11-30 04:09:54 25 4
gpt4 key购买 nike

我是 Qt 的新手,我正在尝试使用“活细胞”计数器来实现康威的生命游戏 - 细胞在着色时是活的。我想知道如何计算 QTableWidget 中彩色单元格的数量。我的意思是我不能使用“if 循环”来做到这一点,因为编译器无法将 QTableWidgetItem::backroundColor 转换为 bool 变量。我该怎么做?

最佳答案

the compiler cannot convert QTableWidgetItem::backroundColor to bool variable.

首先,类中没有这样的成员。

此外,您还没有显示 backgroundColor 的具体数据类型,因此我假设它是 QColor 而不是 QString,等等。

在那种情况下,例如这两个 QColor 方法将有助于您的工作:

QColor::QColor(Qt::GlobalColor color)

This is an overloaded function.

Constructs a new color with a color value of color.

和以下运算符:

bool QColor::operator==(const QColor & color) const

Returns true if this color has the same RGB and alpha values as color; otherwise returns false.

所以,你可以这样写:

const QColor redColor = QColor(Qt::red); // constant, initialized once

然后你会这样比较:

QBrush tableWidgetItemBrush = tableWidgetItem->background();
if (tableWidgetItemBrush.color() == redColor)
++livingCells;

在提供了您想要的代码后,我建议将来重新考虑这种设计。

我会在 UI 中使用不同的“核心”表示,这样它就可以正确解耦,甚至可以直接存储在数据库中,或者在基于命令行的泥浆游戏等中重用。

此外,如果改天,您决定不根据颜色,而是根据不同的图案来区分呢?

关于c++ - Qt - 计数有色细胞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com