本文整理汇总了C++中QLinearGradient::setCoordinateMode方法的典型用法代码示例。如果您正苦于以下问题:C++ QLinearGradient::setCoordinateMode方法的具体用法?C++ QLinearGradient::setCoordinateMode怎么用?C++ QLinearGradient::setCoordinateMode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QLinearGradient
的用法示例。
在下文中一共展示了QLinearGradient::setCoordinateMode方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gradient
QGradient GradientDialog::gradient() const
{
QLinearGradient gradient;
gradient.setStart( 0, 0 );
gradient.setStart( 1, 0 );
gradient.setCoordinateMode( QGradient::ObjectBoundingMode );
Q_FOREACH( const QGradientStop &stop, d->m_gradient )
gradient.setColorAt( stop.first, stop.second );
return gradient;
}
示例2:
void GradientDialog::Private::updateGradientDisplay()
{
QLinearGradient gradient;
gradient.setStart( 0, 0 );
gradient.setStart( 1, 0 );
gradient.setCoordinateMode( QGradient::ObjectBoundingMode );
Q_FOREACH( const QGradientStop &stop, m_gradient )
gradient.setColorAt( stop.first, stop.second );
QPalette palette = ui->gradientDisplay->palette();
palette.setBrush( QPalette::Background, gradient );
ui->gradientDisplay->setPalette( palette );
}
示例3: cacheRendering
QPixmap DetailsButton::cacheRendering(const QSize &size, bool checked)
{
const qreal pixelRatio = devicePixelRatio();
QPixmap pixmap(size * pixelRatio);
pixmap.setDevicePixelRatio(pixelRatio);
pixmap.fill(Qt::transparent);
QPainter p(&pixmap);
p.setRenderHint(QPainter::Antialiasing, true);
p.translate(0.5, 0.5);
if (!creatorTheme()->flag(Theme::FlatProjectsMode)) {
QLinearGradient lg;
lg.setCoordinateMode(QGradient::ObjectBoundingMode);
lg.setFinalStop(0, 1);
if (!checked) {
lg.setColorAt(0, QColor(0, 0, 0, 10));
lg.setColorAt(1, QColor(0, 0, 0, 16));
} else {
lg.setColorAt(0, QColor(255, 255, 255, 0));
lg.setColorAt(1, QColor(255, 255, 255, 50));
}
p.setBrush(lg);
p.setPen(QColor(255,255,255,140));
p.drawRoundedRect(1, 1, size.width()-3, size.height()-3, 1, 1);
p.setPen(QPen(QColor(0, 0, 0, 40)));
p.drawLine(0, 1, 0, size.height() - 2);
if (checked)
p.drawLine(1, size.height() - 1, size.width() - 1, size.height() - 1);
} else {
p.setPen(Qt::NoPen);
p.drawRoundedRect(0, 0, size.width(), size.height(), 1, 1);
}
p.setPen(palette().color(QPalette::Text));
QRect textRect = p.fontMetrics().boundingRect(text());
textRect.setWidth(textRect.width() + 15);
textRect.setHeight(textRect.height() + 4);
textRect.moveCenter(rect().center());
p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text());
int arrowsize = 15;
QStyleOption arrowOpt;
arrowOpt.initFrom(this);
QPalette pal = arrowOpt.palette;
pal.setBrush(QPalette::All, QPalette::Text, QColor(0, 0, 0));
arrowOpt.rect = QRect(size.width() - arrowsize - 6, height()/2-arrowsize/2, arrowsize, arrowsize);
arrowOpt.palette = pal;
style()->drawPrimitive(checked ? QStyle::PE_IndicatorArrowUp : QStyle::PE_IndicatorArrowDown, &arrowOpt, &p, this);
return pixmap;
}
示例4: RectangleShape
KShape *RectangleShapeFactory::createDefaultShape(KResourceManager *) const
{
RectangleShape *rect = new RectangleShape();
rect->setBorder(new KLineBorder(1.0));
rect->setShapeId(KoPathShapeId);
QLinearGradient *gradient = new QLinearGradient(QPointF(0,0), QPointF(1,1));
gradient->setCoordinateMode(QGradient::ObjectBoundingMode);
gradient->setColorAt(0.0, Qt::white);
gradient->setColorAt(1.0, Qt::green);
rect->setBackground(new KGradientBackground(gradient));
return rect;
}
示例5: loadComposite
void StyleLoader::loadComposite(QLinearGradient& value)
{
int coordinateMode;
int spread;
QPointF start;
QPointF finish;
QGradientStops stopPoints;
load("start", start);
load("finish", finish);
load("coordinateMode", coordinateMode);
load("spread", spread);
load("stopPoints", stopPoints);
value = QLinearGradient(start, finish);
value.setSpread((QGradient::Spread) spread);
value.setCoordinateMode((QGradient::CoordinateMode) coordinateMode);
value.setStops(stopPoints);
}
示例6: setupPalette
void setupPalette()
{
QPalette pal = palette();
#if QT_VERSION >= 0x040400
QLinearGradient gradient;
gradient.setCoordinateMode( QGradient::StretchToDeviceMode );
gradient.setColorAt( 0.0, QColor( 0, 49, 110 ) );
gradient.setColorAt( 1.0, QColor( 0, 87, 174 ) );
pal.setBrush( QPalette::Window, QBrush( gradient ) );
#else
pal.setBrush( QPalette::Window, QBrush( color ) );
#endif
// QPalette::WindowText is used for the curve color
pal.setColor( QPalette::WindowText, Qt::green );
setPalette( pal );
}
示例7: randomGradientBrush
QBrush Test::randomGradientBrush()
{
QLinearGradient *gradient = new QLinearGradient();
gradient->setCoordinateMode(QGradient::ObjectBoundingMode);
int h, s, v;
h = qrand() % 360;
s = qrand() % 255;
v = qrand() % 255;
QColor colorBottom = QColor::fromHsv(h, s, v);
colorBottom.toHsv().getHsv(&h, &s, &v);
int diff = 50;
if(v + diff <= 255) {
v += diff;
}
else {
v -= diff;
}
diff = 75;
if(s + diff <= 255) {
s += diff;
}
else {
s -= diff;
}
QColor colorTop = QColor::fromHsv(h, s, v);
gradient->setColorAt(0, colorTop);
gradient->setColorAt(1, colorBottom);
gradient->setStart(0, 0);
gradient->setFinalStop(0, 1);
QBrush retval(*gradient);
delete gradient;
return retval;
}
示例8: drawBackground
void DateTimeGrid::drawBackground(QPainter* painter, const QRectF& rect)
{
QLinearGradient grad;
grad.setCoordinateMode( QGradient::ObjectBoundingMode );
grad.setStart( 0.5, 0.5 );
grad.setFinalStop( 0.5, 0.0 );
grad.setSpread( QGradient::ReflectSpread );
// grad.setCenter( 0.5, 0.5 );
// grad.setFocalPoint( 0.5, 0.5 );
// grad.setRadius( 0.5 );
QColor currentColor = Qt::blue;
for ( qreal i = 0; i <= 1.0; i += 0.1 )
{
currentColor = currentColor.lighter( 100 + 20 * i );
grad.setColorAt( i, currentColor );
}
QBrush brush( grad);
//brush.setColor(Qt::lightGray);
QRectF r = computeRect(QDateTime::currentDateTime(),
QDateTime::currentDateTime().addDays(2),
rect);
painter->fillRect(r, brush);
}
示例9: parseGradient
QBrush XMLParseBase::parseGradient(const QDomElement &element)
{
QLinearGradient gradient;
QString gradientStart = element.attribute("start", "");
QString gradientEnd = element.attribute("end", "");
int gradientAlpha = element.attribute("alpha", "255").toInt();
QString direction = element.attribute("direction", "vertical");
float x1, y1, x2, y2 = 0.0;
if (direction == "vertical")
{
x1 = 0.5;
x2 = 0.5;
y1 = 0.0;
y2 = 1.0;
}
else if (direction == "diagonal")
{
x1 = 0.0;
x2 = 1.0;
y1 = 0.0;
y2 = 1.0;
}
else
{
x1 = 0.0;
x2 = 1.0;
y1 = 0.5;
y2 = 0.5;
}
gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
gradient.setStart(x1, y1);
gradient.setFinalStop(x2, y2);
QGradientStops stops;
if (!gradientStart.isEmpty())
{
QColor startColor = QColor(gradientStart);
startColor.setAlpha(gradientAlpha);
QGradientStop stop(0.0, startColor);
stops.append(stop);
}
if (!gradientEnd.isEmpty())
{
QColor endColor = QColor(gradientEnd);
endColor.setAlpha(gradientAlpha);
QGradientStop stop(1.0, endColor);
stops.append(stop);
}
for (QDomNode child = element.firstChild(); !child.isNull();
child = child.nextSibling())
{
QDomElement childElem = child.toElement();
if (childElem.tagName() == "stop")
{
float position = childElem.attribute("position", "0").toFloat();
QString color = childElem.attribute("color", "");
int alpha = childElem.attribute("alpha", "-1").toInt();
if (alpha < 0)
alpha = gradientAlpha;
QColor stopColor = QColor(color);
stopColor.setAlpha(alpha);
QGradientStop stop((position / 100), stopColor);
stops.append(stop);
}
}
gradient.setStops(stops);
return QBrush(gradient);
}
示例10: configureDescriptor
void RelationshipView::configureDescriptor(void)
{
QLineF lin;
QPolygonF pol;
BaseRelationship *base_rel=this->getSourceObject();
Relationship *rel=dynamic_cast<Relationship *>(base_rel);
unsigned rel_type=base_rel->getRelationshipType();
float x, y, x1, y1, factor=font_config[ParsersAttributes::GLOBAL].font().pointSizeF()/DEFAULT_FONT_SIZE;
QPen pen;
QPointF pnt;
vector<QPointF> points=base_rel->getPoints();
QColor line_color=base_rel->getCustomColor();
QGraphicsPolygonItem *pol_item=nullptr;
//Configuring the relationship descriptor color
if(base_rel->getCustomColor()!=Qt::transparent)
//Using custom color
pen.setColor(base_rel->getCustomColor());
else
//Using the default color
pen=BaseObjectView::getBorderStyle(ParsersAttributes::RELATIONSHIP);
if(rel_type==BaseRelationship::RELATIONSHIP_DEP)
pen.setStyle(Qt::DashLine);
descriptor->setPen(pen);
if(line_color!=Qt::transparent)
{
QColor colors[2];
QLinearGradient grad;
BaseObjectView::getFillStyle(ParsersAttributes::RELATIONSHIP, colors[0], colors[1]);
for(unsigned i=0; i < 2; i++)
{
colors[i].setRed((colors[i].red() + line_color.red() + 255)/3);
colors[i].setGreen((colors[i].green() + line_color.green() + 255)/3);
colors[i].setBlue((colors[i].blue() + line_color.blue() + 255)/3);
grad.setColorAt(i, colors[i]);
}
grad.setCoordinateMode(QGradient::ObjectBoundingMode);;
descriptor->setBrush(grad);
}
else
descriptor->setBrush(BaseObjectView::getFillStyle(ParsersAttributes::RELATIONSHIP));
if(rel_type==BaseRelationship::RELATIONSHIP_DEP ||
rel_type==BaseRelationship::RELATIONSHIP_GEN)
{
pol.append(QPointF(0,0)); pol.append(QPointF(21,13));
pol.append(QPointF(0,26)); pol.append(QPointF(0,13));
}
else
{
pol.append(QPointF(13,0)); pol.append(QPointF(26,13));
pol.append(QPointF(13,26)); pol.append(QPointF(0,13));
}
//Resizes the polygon according the font factor
if(factor!=1.0f)
this->resizePolygon(pol,
pol.boundingRect().width() * factor ,
pol.boundingRect().height() * factor);
if(base_rel->isSelfRelationship())
pnt=points.at(points.size()/2);
else
{
lin=lines.at(lines.size()/2)->line();
if(rel && rel->isIdentifier())
pnt=lin.p1();
else
{
pnt.setX((lin.p1().x() + lin.p2().x()) / 2.0f);
pnt.setY((lin.p1().y() + lin.p2().y()) / 2.0f);
}
descriptor->setRotation(-lin.angle());
obj_selection->setRotation(-lin.angle());
obj_shadow->setRotation(-lin.angle());
}
x=x1=pnt.x() - (pol.boundingRect().width()/2.0f);
y=y1=pnt.y() - (pol.boundingRect().height()/2.0f);
protected_icon->setPos(x + ((pol.boundingRect().width()/2.0f) * 0.60f),
y + ((pol.boundingRect().height()/2.0f) * 0.55f));
configureSQLDisabledInfo();
x1+=6 * HORIZ_SPACING;
y1-=3 * VERT_SPACING;
sql_disabled_box->setPos(x1, y1);
sql_disabled_txt->setPos(x1 + HORIZ_SPACING, y1 + VERT_SPACING);
descriptor->setPolygon(pol);
descriptor->setTransformOriginPoint(descriptor->boundingRect().center());
descriptor->setPos(x, y);
//.........这里部分代码省略.........
示例11: parseGradient
bool SvgParser::parseGradient(const KoXmlElement &e, const KoXmlElement &referencedBy)
{
// IMPROVEMENTS:
// - Store the parsed colorstops in some sort of a cache so they don't need to be parsed again.
// - A gradient inherits attributes it does not have from the referencing gradient.
// - Gradients with no color stops have no fill or stroke.
// - Gradients with one color stop have a solid color.
SvgGraphicsContext *gc = m_context.currentGC();
if (!gc)
return false;
SvgGradientHelper gradhelper;
if (e.hasAttribute("xlink:href")) {
QString href = e.attribute("xlink:href").mid(1);
if (! href.isEmpty()) {
// copy the referenced gradient if found
SvgGradientHelper *pGrad = findGradient(href);
if (pGrad)
gradhelper = *pGrad;
} else {
//gc->fillType = SvgGraphicsContext::None; // <--- TODO Fill OR Stroke are none
return false;
}
}
// Use the gradient that is referencing, or if there isn't one, the original gradient.
KoXmlElement b;
if (!referencedBy.isNull())
b = referencedBy;
else
b = e;
QString gradientId = b.attribute("id");
if (! gradientId.isEmpty()) {
// check if we have this gradient already parsed
// copy existing gradient if it exists
if (m_gradients.find(gradientId) != m_gradients.end())
gradhelper.copyGradient(m_gradients[ gradientId ].gradient());
}
if (b.attribute("gradientUnits") == "userSpaceOnUse")
gradhelper.setGradientUnits(SvgGradientHelper::UserSpaceOnUse);
// parse color prop
QColor c = gc->currentColor;
if (!b.attribute("color").isEmpty()) {
m_context.styleParser().parseColor(c, b.attribute("color"));
} else {
// try style attr
QString style = b.attribute("style").simplified();
const QStringList substyles = style.split(';', QString::SkipEmptyParts);
for (QStringList::ConstIterator it = substyles.begin(); it != substyles.end(); ++it) {
QStringList substyle = it->split(':');
QString command = substyle[0].trimmed();
QString params = substyle[1].trimmed();
if (command == "color")
m_context.styleParser().parseColor(c, params);
}
}
gc->currentColor = c;
if (b.tagName() == "linearGradient") {
QLinearGradient *g = new QLinearGradient();
if (gradhelper.gradientUnits() == SvgGradientHelper::ObjectBoundingBox) {
g->setCoordinateMode(QGradient::ObjectBoundingMode);
g->setStart(QPointF(SvgUtil::fromPercentage(b.attribute("x1", "0%")),
SvgUtil::fromPercentage(b.attribute("y1", "0%"))));
g->setFinalStop(QPointF(SvgUtil::fromPercentage(b.attribute("x2", "100%")),
SvgUtil::fromPercentage(b.attribute("y2", "0%"))));
} else {
g->setStart(QPointF(SvgUtil::fromUserSpace(b.attribute("x1").toDouble()),
SvgUtil::fromUserSpace(b.attribute("y1").toDouble())));
g->setFinalStop(QPointF(SvgUtil::fromUserSpace(b.attribute("x2").toDouble()),
SvgUtil::fromUserSpace(b.attribute("y2").toDouble())));
}
// preserve color stops
if (gradhelper.gradient())
g->setStops(gradhelper.gradient()->stops());
gradhelper.setGradient(g);
} else if (b.tagName() == "radialGradient") {
QRadialGradient *g = new QRadialGradient();
if (gradhelper.gradientUnits() == SvgGradientHelper::ObjectBoundingBox) {
g->setCoordinateMode(QGradient::ObjectBoundingMode);
g->setCenter(QPointF(SvgUtil::fromPercentage(b.attribute("cx", "50%")),
SvgUtil::fromPercentage(b.attribute("cy", "50%"))));
g->setRadius(SvgUtil::fromPercentage(b.attribute("r", "50%")));
g->setFocalPoint(QPointF(SvgUtil::fromPercentage(b.attribute("fx", "50%")),
SvgUtil::fromPercentage(b.attribute("fy", "50%"))));
} else {
g->setCenter(QPointF(SvgUtil::fromUserSpace(b.attribute("cx").toDouble()),
SvgUtil::fromUserSpace(b.attribute("cy").toDouble())));
g->setFocalPoint(QPointF(SvgUtil::fromUserSpace(b.attribute("fx").toDouble()),
SvgUtil::fromUserSpace(b.attribute("fy").toDouble())));
g->setRadius(SvgUtil::fromUserSpace(b.attribute("r").toDouble()));
}
// preserve color stops
//.........这里部分代码省略.........