QColor color; penColors.append(color);// QColor&lastColor = penColors.last();//拿到新颜色 lastColor=QColorDialog::getColor(Qt::red, this,tr("颜色对话框"),QColorDialog::ShowAlphaChannel); _penColors.append(1);int k=0;QPen pen; for(int c = 0;c<penColors.size();++c) { if(_penColors.at(c)==1) pen.setColor(penColors.at(k++)); } p.setPen(pen);
时间: 2024-04-12 20:31:22 浏览: 110
根据您提供的代码,似乎您想根据 `_penColors` 中的值选择 `penColors` 中的颜色,并将其应用于 `QPen` 对象。根据这个理解,以下是修正后的代码:
```cpp
QVector<QColor> penColors;
QVector<int> _penColors;
QColor color;
penColors.append(color);
QColor& lastColor = penColors.last();
lastColor = QColorDialog::getColor(Qt::red, this, tr("颜色对话框"), QColorDialog::ShowAlphaChannel);
_penColors.append(1);
QPen pen;
int k = 0;
for (int c = 0; c < _penColors.size(); ++c) {
if (_penColors.at(c) == 1 && k < penColors.size()) {
pen.setColor(penColors.at(k++));
}
}
p.setPen(pen);
```
修正后的代码中,我们首先通过 `QColorDialog::getColor` 获取一个新的颜色,并将其添加到 `penColors` 容器中。然后,我们遍历 `_penColors` 容器,如果对应位置的值为 1,并且 `k` 的值小于 `penColors` 的大小,我们就从 `penColors` 中获取颜色,并将其设置为 `pen` 的颜色。最后,我们使用 `p.setPen(pen)` 将 `pen` 应用于某个绘图对象。
请注意,根据您的需求和代码逻辑,您可能需要进一步调整代码以满足您的要求。此处提供的修正代码只是基于我对您提供的代码的理解。
阅读全文