我正在尝试在 Qt 中制作一个时间线,其中不同的颜色代表不同的任务。
最终,它应该看起来有点像这样(但只有一行);
现在有人知道如何在不安装额外库的情况下仅使用 QPaint 来做到这一点吗?
它所表示的数据存储在自定义的结构中。
欢迎任何帮助。
Thx!
您似乎需要类似下面的代码,但请注意,它只是伪代码,确切的细节在很大程度上取决于您如何从尚未与我们共享的数据结构中获取数据。
...
QPainter *painter = new QPainter(MyPaintDevice); // MyPaintDevice could be even 'this'
QPen pen(Qt::gray, 2);
painter->setPen(pen);
int currentX = 0;
const int currentY = 0;
const int height = hardCodedValue; // Coming from some static data initialization
foreach (const Settings& settings, settingsList) {
QBrush brush(QColor(settings.colorString()));
painter->setBrush(brush);
painter->drawRect(currentX, currentY, settings.width(), height);
currentX += settings.width();
}
...
诚然,您最好选择 QML 而不是旧的QPainter
发动机有几个原因。现在是硬件加速而不是软件光栅化QPainter
方法,但对您来说可能更重要的是:它更简单。
你需要调查一下原生 Rect qml 元素,并且可能是Repeater.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)