gpt4 book ai didi

c++ - 在 Qt C++ 中初始化 QColors 列表

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:07 26 4
gpt4 key购买 nike

如何初始化 QColors 的静态列表。我正在使用 Qt 5.11.1

在我的头文件中我有这个:

QList<QColor> *colorList;

不确定我用这个是否更合适

QColor *colorList[15];

然后我会在 CPP 文件中写什么...像这样的东西?:

colorList = {
QColor(220,0,0),
QColor(250,140,0),
QColor(255,255,0),
QColor(145,210,80),
QColor(0,180,20),
...
};

我最终会使用颜色遍历这个颜色列表。

更新遍历颜色时出现错误。我使用这些颜色来定义我子类化的 QPushButton 的视觉颜色。

这里是代码的导入位。

.h

#include <QWidget>
#include <colorswatch.h>
#include <QColorDialog>
#include <QMenu>
#include <QList>

class ColorSwatchPicker : public ColorSwatch
{
Q_OBJECT
...

private:
void init();
...
QList<QColor> *colorList;
};

.cpp

void ColorSwatchPicker::createButtons()
{
//! create color swatch menu
QWidget *colorWidget = new QWidget(this);
QGridLayout *layout = new QGridLayout(colorWidget);
layout->setSpacing(4);
layout->setContentsMargins(0,0,0,0);

// create color swatches
colorList = new QList<QColor>({
QColor(255,70,50),
QColor(230,30,100),
QColor(155,40,175),
QColor(105,60,185),
QColor(65,80,180),
...
});

// Create the pushbutton control
foreach (const QColor &c, colorList) {
auto *cs = new ColorSwatch(c, this);
cs->setFixedSize(18,18);
};

enter image description here

最佳答案

  1. 定义一个 alias (可选)

    using ColorList = QList<QColor>;
  2. 初始化列表

    auto *colorList = new ColorList({
    QColor(220,0,0),
    QColor(250,140,0),
    QColor(255,255,0),
    // ...
    });
  3. 迭代 colorList 中的颜色

    foreach (const QColor &c, *colorList) {
    // do something with c
    }

    注意(感谢@drescherjm 和@AlbertoMiola):或者您可以使用 ranged for 而不是 foreach:

    for (const auto &c : *colorList) {
    // do something with c
    }

关于c++ - 在 Qt C++ 中初始化 QColors 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52482874/

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