本文整理汇总了C++中QColor函数的典型用法代码示例。如果您正苦于以下问题:C++ QColor函数的具体用法?C++ QColor怎么用?C++ QColor使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QColor函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QWidget
CannonField::CannonField( QWidget *parent, const char *name )
: QWidget( parent, name )
{
ang = 45;
setPalette( QPalette( QColor( 250, 250, 200) ) );
}
示例2: settings
QColor Loader::getLineColor(quint32 line)
{
QSettings settings(settingsFileName(), QSettings::IniFormat);
QString colorName = settings.value(QString("line_colors/%1").arg(line), QString("gray")).toString();
return QColor(colorName);
}
示例3: bgColor
void KeyWidget::paintEvent(QPaintEvent*){
const QColor bgColor(68, 64, 64);
const QColor keyColor(112, 110, 110);
const QColor highlightColor(136, 176, 240);
const QColor highlightAnimColor(136, 200, 240);
const QColor animColor(112, 200, 110);
// Determine which keys to highlight
QBitArray highlight;
switch(mouseDownMode){
case SET:
highlight = newSelection;
break;
case ADD:
highlight = selection | newSelection;
break;
case SUBTRACT:
highlight = selection & ~newSelection;
break;
case TOGGLE:
highlight = selection ^ newSelection;
break;
default:
highlight = selection;
}
QPainter painter(this);
#if QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)
int ratio = painter.device()->devicePixelRatio();
#else
int ratio = 1;
#endif
float xScale = (float)width() / (keyMap.width() + KEY_SIZE) * ratio;
float yScale = (float)height() / (keyMap.height() + KEY_SIZE) * ratio;
// Draw background
painter.setPen(Qt::NoPen);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setBrush(QBrush(bgColor));
painter.drawRect(0, 0, width(), height());
// Draw mouse highlight (if any)
if(mouseDownMode != NONE && (mouseDownX != mouseCurrentX || mouseDownY != mouseCurrentY)){
int x1 = (mouseDownX > mouseCurrentX) ? mouseCurrentX : mouseDownX;
int x2 = (mouseDownX > mouseCurrentX) ? mouseDownX : mouseCurrentX;
int y1 = (mouseDownY > mouseCurrentY) ? mouseCurrentY : mouseDownY;
int y2 = (mouseDownY > mouseCurrentY) ? mouseDownY : mouseCurrentY;
painter.setPen(QPen(highlightColor, 0.5));
QColor bColor = highlightColor;
bColor.setAlpha(128);
painter.setBrush(QBrush(bColor));
painter.drawRect(x1, y1, x2 - x1, y2 - y1);
}
// Draw key backgrounds on a separate pixmap so that a drop shadow can be applied to them.
int wWidth = width(), wHeight = height();
KeyMap::Model model = keyMap.model();
QPixmap keyBG(wWidth * ratio, wHeight * ratio);
keyBG.fill(QColor(0, 0, 0, 0));
QPainter bgPainter(&keyBG);
bgPainter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
bgPainter.setPen(Qt::NoPen);
QHashIterator<QString, Key> k(keyMap);
uint i = -1;
while(k.hasNext()){
k.next();
i++;
const Key& key = k.value();
float x = key.x + 6.f - key.width / 2.f + 1.f;
float y = key.y + 6.f - key.height / 2.f + 1.f;
float w = key.width - 2.f;
float h = key.height - 2.f;
// In RGB mode, ignore keys without LEDs
if(_rgbMode && !key.hasLed)
continue;
// Set color based on key highlight
if(highlight.testBit(i)){
if(animation.testBit(i))
bgPainter.setBrush(QBrush(highlightAnimColor));
else
bgPainter.setBrush(QBrush(highlightColor));
} else if(animation.testBit(i))
bgPainter.setBrush(QBrush(animColor));
else
bgPainter.setBrush(QBrush(keyColor));
if(!strcmp(key.name, "mr") || !strcmp(key.name, "m1") || !strcmp(key.name, "m2") || !strcmp(key.name, "m3")
|| !strcmp(key.name, "light") || !strcmp(key.name, "lock") || (model == KeyMap::K65 && !strcmp(key.name, "mute"))){
// Switch keys are circular
x += w / 8.f;
y += h / 8.f;
w *= 0.75f;
h *= 0.75f;
bgPainter.drawEllipse(QRectF(x * xScale, y * yScale, w * xScale, h * yScale));
} else {
if(!strcmp(key.name, "enter")){
if(key.height == 24){
// ISO enter key isn't rectangular
y = key.y + 1.f;
h = 10.f;
bgPainter.drawRect(QRectF((x + w - 13.f) * xScale, y * yScale, 13.f * xScale, 22.f * yScale));
} else {
//.........这里部分代码省略.........
示例4: qMax
void EraserTool::drawStroke()
{
StrokeTool::drawStroke();
QList<QPointF> p = m_pStrokeManager->interpolateStroke();
Layer* layer = mEditor->layers()->currentLayer();
if ( layer->type() == Layer::BITMAP )
{
for ( int i = 0; i < p.size(); i++ )
{
p[ i ] = mEditor->view()->mapScreenToCanvas( p[ i ] );
}
qreal opacity = 1.0;
mCurrentWidth = properties.width;
qreal brushWidth = (mCurrentWidth + (mCurrentPressure * mCurrentWidth)) * 0.5;
qreal brushStep = (0.5 * brushWidth) - ((properties.feather/100.0) * brushWidth * 0.5);
brushStep = qMax( 1.0, brushStep );
BlitRect rect;
QPointF a = lastBrushPoint;
QPointF b = getCurrentPoint();
qreal distance = 4 * QLineF( b, a ).length();
int steps = qRound( distance ) / brushStep;
for ( int i = 0; i < steps; i++ )
{
QPointF point = lastBrushPoint + ( i + 1 ) * ( brushStep )* ( b - lastBrushPoint ) / distance;
rect.extend( point.toPoint() );
mScribbleArea->drawBrush( point,
brushWidth,
properties.feather,
QColor(255, 255, 255, 255),
opacity );
if ( i == ( steps - 1 ) )
{
lastBrushPoint = point;
}
}
int rad = qRound( brushWidth ) / 2 + 2;
mScribbleArea->refreshBitmap( rect, rad );
}
else if ( layer->type() == Layer::VECTOR )
{
QPen pen( Qt::white, mCurrentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
int rad = qRound( ( mCurrentWidth / 2 + 2 ) * mEditor->view()->scaling() );
if ( p.size() == 4 ) {
QSizeF size( 2, 2 );
QPainterPath path( p[ 0 ] );
path.cubicTo( p[ 1 ],
p[ 2 ],
p[ 3 ] );
mScribbleArea->drawPath( path, pen, Qt::NoBrush, QPainter::CompositionMode_Source );
mScribbleArea->refreshVector( path.boundingRect().toRect(), rad );
}
}
}
示例5: QChar
const Glyph& TextRenderer::getGlyph(char c) {
Glyph& glyph = _glyphs[c];
if (glyph.isValid()) {
return glyph;
}
// we use 'J' as a representative size for the solid block character
QChar ch = (c == SOLID_BLOCK_CHAR) ? QChar('J') : QChar(c);
QRect bounds = _metrics.boundingRect(ch);
if (bounds.isEmpty()) {
glyph = Glyph(0, QPoint(), QRect(), _metrics.width(ch));
return glyph;
}
// grow the bounds to account for effect, if any
if (_effectType == SHADOW_EFFECT) {
bounds.adjust(-_effectThickness, 0, 0, _effectThickness);
} else if (_effectType == OUTLINE_EFFECT) {
bounds.adjust(-_effectThickness, -_effectThickness, _effectThickness, _effectThickness);
}
// grow the bounds to account for antialiasing
bounds.adjust(-1, -1, 1, 1);
if (_x + bounds.width() > IMAGE_SIZE) {
// we can't fit it on the current row; move to next
_y += _rowHeight;
_x = _rowHeight = 0;
}
if (_y + bounds.height() > IMAGE_SIZE) {
// can't fit it on current texture; make a new one
glGenTextures(1, &_currentTextureID);
_x = _y = _rowHeight = 0;
glBindTexture(GL_TEXTURE_2D, _currentTextureID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, IMAGE_SIZE, IMAGE_SIZE, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
_allTextureIDs.append(_currentTextureID);
} else {
glBindTexture(GL_TEXTURE_2D, _currentTextureID);
}
// render the glyph into an image and copy it into the texture
QImage image(bounds.width(), bounds.height(), QImage::Format_ARGB32);
if (c == SOLID_BLOCK_CHAR) {
image.fill(QColor(255, 255, 255));
} else {
image.fill(0);
QPainter painter(&image);
painter.setFont(_font);
if (_effectType == SHADOW_EFFECT) {
for (int i = 0; i < _effectThickness; i++) {
painter.drawText(-bounds.x() - 1 - i, -bounds.y() + 1 + i, ch);
}
} else if (_effectType == OUTLINE_EFFECT) {
QPainterPath path;
QFont font = _font;
font.setStyleStrategy(QFont::ForceOutline);
path.addText(-bounds.x() - 0.5, -bounds.y() + 0.5, font, ch);
QPen pen;
pen.setWidth(_effectThickness);
pen.setJoinStyle(Qt::RoundJoin);
pen.setCapStyle(Qt::RoundCap);
painter.setPen(pen);
painter.setRenderHint(QPainter::Antialiasing);
painter.drawPath(path);
}
painter.setPen(QColor(255, 255, 255));
painter.drawText(-bounds.x(), -bounds.y(), ch);
}
glTexSubImage2D(GL_TEXTURE_2D, 0, _x, _y, bounds.width(), bounds.height(), GL_RGBA, GL_UNSIGNED_BYTE, image.constBits());
glyph = Glyph(_currentTextureID, QPoint(_x, _y), bounds, _metrics.width(ch));
_x += bounds.width();
_rowHeight = qMax(_rowHeight, bounds.height());
glBindTexture(GL_TEXTURE_2D, 0);
return glyph;
}
示例6: switch
//.........这里部分代码省略.........
if (!wnd) {
throw RUNTIME_EXCEPTION(CONSTRUCT_MSG(
"Error!\n"
"Can't allocate memory for window: %s",
::std::strerror(errno)));
}
int width = static_cast<int>(regs[1]),
height = static_cast<int>(regs[2]);
wnd->resize(width, height);
wnd->show();
wnd->setWindowTitle(QApplication::translate(
"emulator",
mm->getString(static_cast<size_t>(regs[3])).c_str()));
wnd->begin(width, height);
wnd->setAntialiased(true);
regs[4] = windows.size();
windows.push_back(wnd);
break;
}
case 1: {
LLCCEP_exec::window *wnd = getWindow();
wnd->painter().drawPoint(static_cast<int>(regs[2]), static_cast<size_t>(regs[3]));
break;
}
case 2: {
LLCCEP_exec::window *wnd = getWindow();
wnd->painter().setPen(QColor(static_cast<QRgb>(regs[2])));
break;
}
case 3: {
LLCCEP_exec::window *wnd = getWindow();
wnd->close();
delete wnd;
windows.erase(windows.begin() + static_cast<size_t>(regs[1]));
break;
}
case 4: {
LLCCEP_exec::window *wnd = getWindow();
regs[3] = wnd->getKeyboardButtonState((static_cast<size_t>(regs[2]) > 0xFF)?
(0):
(static_cast<size_t>(regs[2])));
regs[4] = wnd->getMousePos().x();
regs[5] = wnd->getMousePos().y();
regs[6] = wnd->getMouseButtons();
break;
}
case 5: {
LLCCEP_exec::window *wnd = getWindow();
regs[2] = wnd->pos().x();
regs[3] = wnd->pos().y();
regs[4] = wnd->size().width();
regs[5] = wnd->size().height();
示例7: qDebug
QVariant MProductos::data(const QModelIndex& item, int role) const
{
if( !item.isValid() )
{
qDebug( QString( "Indice invalido Productos: col=%1, row=%2, role=%3").arg( item.column() ).arg( item.row() ).arg( role ).toLocal8Bit() );
return( QVariant() );
}
switch( role )
{
case Qt::DisplayRole:
{
switch( item.column() )
{
case 4:
case 5:
{
return QString( "$ %1" ).arg( QString::number( QSqlRelationalTableModel::data(item, role).toDouble(), 'f', 3 ) );
break;
}
case 9:
{
if( QSqlRelationalTableModel::data( item, role ).toBool() )
{ return "Si"; }
else
{ return "No"; }
break;
}
case 7:
{
return QString::number( QSqlRelationalTableModel::data( item, role ).toDouble(), 'f', 2 );
break;
}
default:
{
return QSqlRelationalTableModel::data( item, role );
break;
}
}
break;
}
case Qt::TextColorRole:
{
switch ( item.column() )
{
case 5:
case 4:
{
return QColor(Qt::blue);
break;
}
default:
{
return QColor(Qt::black);
break;
}
}
break;
}
case Qt::EditRole:
{
switch( item.column() )
{
case 5:
case 4:
{
return QSqlRelationalTableModel::data( item, role ).toDouble();
break;
}
default:
{
return QSqlRelationalTableModel::data( item, role );
break;
}
}
break;
}
case Qt::TextAlignmentRole:
{
switch( item.column() )
{
case 5:
case 4:
case 6:
case 7:
case 8:
{
return int( Qt::AlignHCenter | Qt::AlignVCenter );
break;
}
default:
{
return int( Qt::AlignLeft | Qt::AlignVCenter );
break;
}
}
break;
}
case Qt::ToolTipRole:
case Qt::StatusTipRole:
{
//.........这里部分代码省略.........
示例8: palette
void QScriptEdit::extraAreaPaintEvent(QPaintEvent *e)
{
QRect rect = e->rect();
QPalette pal = palette();
pal.setCurrentColorGroup(QPalette::Active);
QPainter painter(m_extraArea);
painter.fillRect(rect, Qt::lightGray);
const QFontMetrics fm(fontMetrics());
int markWidth = fm.lineSpacing();
int extraAreaWidth = m_extraArea->width();
QLinearGradient gradient(QPointF(extraAreaWidth - 10, 0), QPointF(extraAreaWidth, 0));
gradient.setColorAt(0, pal.color(QPalette::Background));
gradient.setColorAt(1, pal.color(QPalette::Base));
painter.fillRect(rect, gradient);
QLinearGradient gradient2(QPointF(0, 0), QPointF(markWidth, 0));
gradient2.setColorAt(0, pal.color(QPalette::Dark));
gradient2.setColorAt(1, pal.color(QPalette::Background));
painter.fillRect(rect.intersected(QRect(rect.x(), rect.y(), markWidth, rect.height())), gradient2);
painter.setPen(QPen(pal.color(QPalette::Background), 2));
if (isLeftToRight())
painter.drawLine(rect.x() + extraAreaWidth-1, rect.top(), rect.x() + extraAreaWidth-1, rect.bottom());
else
painter.drawLine(rect.x(), rect.top(), rect.x(), rect.bottom());
painter.setRenderHint(QPainter::Antialiasing);
#ifndef QT_NO_SYNTAXHIGHLIGHTER
QTextBlock block = firstVisibleBlock();
int blockNumber = block.blockNumber();
qreal top = blockBoundingGeometry(block).translated(contentOffset()).top();
qreal bottom = top + blockBoundingRect(block).height();
QString imagesPath = QString::fromLatin1(":/qt/scripttools/debugging/images");
QString imageExt;
// SVGs don't work on all platforms, even when QT_NO_SVG is not defined, so disable SVG usage for now.
// #ifndef QT_NO_SVG
#if 0
imageExt = QString::fromLatin1("svg");
#else
imageExt = QString::fromLatin1("png");
#endif
while (block.isValid() && top <= rect.bottom()) {
if (block.isVisible() && bottom >= rect.top()) {
int lineNumber = blockNumber + m_baseLineNumber;
if (m_breakpoints.contains(lineNumber)) {
int radius = fm.lineSpacing() - 1;
QRect r(rect.x(), (int)top, radius, radius);
QIcon icon(m_breakpoints[lineNumber].enabled
? QString::fromLatin1("%0/breakpoint.%1").arg(imagesPath).arg(imageExt)
: QString::fromLatin1("%0/d_breakpoint.%1").arg(imagesPath).arg(imageExt));
icon.paint(&painter, r, Qt::AlignCenter);
}
if (m_executionLineNumber == lineNumber) {
int radius = fm.lineSpacing() - 1;
QRect r(rect.x(), (int)top, radius, radius);
QIcon icon(QString::fromLatin1("%0/location.%1").arg(imagesPath).arg(imageExt));
icon.paint(&painter, r, Qt::AlignCenter);
}
if (!isExecutableLine(lineNumber))
painter.setPen(pal.color(QPalette::Mid));
else
painter.setPen(QColor(Qt::darkCyan));
QString number = QString::number(lineNumber);
painter.drawText(rect.x() + markWidth, (int)top, rect.x() + extraAreaWidth - markWidth - 4,
fm.height(), Qt::AlignRight, number);
}
block = block.next();
top = bottom;
bottom = top + blockBoundingRect(block).height();
++blockNumber;
}
#endif
}
示例9: QWidget
SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) :
QWidget(0, f), curAlignment(0)
{
// set reference point, paddings
int paddingLeft = 14;
int paddingTop = 470;
int titleVersionVSpace = 17;
int titleCopyrightVSpace = 32;
float fontFactor = 1.0;
// define text to place
QString titleText = tr("Owncoin Core");
QString versionText = QString(tr("Version %1")).arg(QString::fromStdString(FormatFullVersion()));
QString copyrightTextBtc = QChar(0xA9)+QString(" 2009-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Bitcoin Core developers"));
QString copyrightTextOwncoin = QChar(0xA9)+QString(" 2014-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Owncoin Core developers"));
QString titleAddText = networkStyle->getTitleAddText();
QString font = QApplication::font().toString();
// load the bitmap for writing some text over it
pixmap = networkStyle->getSplashImage();
QPainter pixPaint(&pixmap);
pixPaint.setPen(QColor(100,100,100));
// check font size and drawing with
pixPaint.setFont(QFont(font, 28*fontFactor));
QFontMetrics fm = pixPaint.fontMetrics();
int titleTextWidth = fm.width(titleText);
if(titleTextWidth > 160) {
// strange font rendering, Arial probably not found
fontFactor = 0.75;
}
pixPaint.setFont(QFont(font, 28*fontFactor));
fm = pixPaint.fontMetrics();
titleTextWidth = fm.width(titleText);
pixPaint.drawText(paddingLeft,paddingTop,titleText);
pixPaint.setFont(QFont(font, 15*fontFactor));
pixPaint.drawText(paddingLeft,paddingTop+titleVersionVSpace,versionText);
// draw copyright stuff
pixPaint.setFont(QFont(font, 10*fontFactor));
pixPaint.drawText(paddingLeft,paddingTop+titleCopyrightVSpace,copyrightTextBtc);
pixPaint.drawText(paddingLeft,paddingTop+titleCopyrightVSpace+12,copyrightTextOwncoin);
// draw additional text if special network
if(!titleAddText.isEmpty()) {
QFont boldFont = QFont(font, 10*fontFactor);
boldFont.setWeight(QFont::Bold);
pixPaint.setFont(boldFont);
fm = pixPaint.fontMetrics();
int titleAddTextWidth = fm.width(titleAddText);
pixPaint.drawText(pixmap.width()-titleAddTextWidth-10,pixmap.height()-25,titleAddText);
}
pixPaint.end();
// Set window title
setWindowTitle(titleText + " " + titleAddText);
// Resize window and move to center of desktop, disallow resizing
QRect r(QPoint(), pixmap.size());
resize(r.size());
setFixedSize(r.size());
move(QApplication::desktop()->screenGeometry().center() - r.center());
subscribeToCoreSignals();
}
示例10: QColor
void QgsSvgCache::containsElemParams( const QDomElement& elem, bool& hasFillParam, QColor& defaultFill, bool& hasOutlineParam, QColor& defaultOutline,
bool& hasOutlineWidthParam, double& defaultOutlineWidth ) const
{
if ( elem.isNull() )
{
return;
}
//we already have all the information, no need to go deeper
if ( hasFillParam && hasOutlineParam && hasOutlineWidthParam )
{
return;
}
//check this elements attribute
QDomNamedNodeMap attributes = elem.attributes();
int nAttributes = attributes.count();
QStringList valueSplit;
for ( int i = 0; i < nAttributes; ++i )
{
QDomAttr attribute = attributes.item( i ).toAttr();
if ( attribute.name().compare( "style", Qt::CaseInsensitive ) == 0 )
{
//entries separated by ';'
QStringList entryList = attribute.value().split( ';' );
QStringList::const_iterator entryIt = entryList.constBegin();
for ( ; entryIt != entryList.constEnd(); ++entryIt )
{
QStringList keyValueSplit = entryIt->split( ':' );
if ( keyValueSplit.size() < 2 )
{
continue;
}
QString key = keyValueSplit.at( 0 );
QString value = keyValueSplit.at( 1 );
valueSplit = value.split( " " );
if ( !hasFillParam && value.startsWith( "param(fill)" ) )
{
hasFillParam = true;
if ( valueSplit.size() > 1 )
{
defaultFill = QColor( valueSplit.at( 1 ) );
}
}
else if ( !hasOutlineParam && value.startsWith( "param(outline)" ) )
{
hasOutlineParam = true;
if ( valueSplit.size() > 1 )
{
defaultOutline = QColor( valueSplit.at( 1 ) );
}
}
else if ( !hasOutlineWidthParam && value.startsWith( "param(outline-width)" ) )
{
hasOutlineWidthParam = true;
if ( valueSplit.size() > 1 )
{
defaultOutlineWidth = valueSplit.at( 1 ).toDouble();
}
}
}
}
else
{
QString value = attribute.value();
valueSplit = value.split( " " );
if ( !hasFillParam && value.startsWith( "param(fill)" ) )
{
hasFillParam = true;
if ( valueSplit.size() > 1 )
{
defaultFill = QColor( valueSplit.at( 1 ) );
}
}
else if ( !hasOutlineParam && value.startsWith( "param(outline)" ) )
{
hasOutlineParam = true;
if ( valueSplit.size() > 1 )
{
defaultOutline = QColor( valueSplit.at( 1 ) );
}
}
else if ( !hasOutlineWidthParam && value.startsWith( "param(outline-width)" ) )
{
hasOutlineWidthParam = true;
if ( valueSplit.size() > 1 )
{
defaultOutlineWidth = valueSplit.at( 1 ).toDouble();
}
}
}
}
//pass it further to child items
QDomNodeList childList = elem.childNodes();
int nChildren = childList.count();
for ( int i = 0; i < nChildren; ++i )
{
QDomElement childElem = childList.at( i ).toElement();
//.........这里部分代码省略.........
示例11: QCPItemRect
void PerformanceScoring::prepareDataPlot(
DataPlot *plot)
{
// Return now if plot empty
if (mMainWindow->dataSize() == 0) return;
DataPoint dpStart = mMainWindow->interpolateDataT(mStartTime);
DataPoint dpEnd = mMainWindow->interpolateDataT(mEndTime);
// Add shading for scoring window
if (plot->yValue(DataPlot::Elevation)->visible())
{
DataPoint dpLower = mMainWindow->interpolateDataT(mMainWindow->rangeLower());
DataPoint dpUpper = mMainWindow->interpolateDataT(mMainWindow->rangeUpper());
const double xMin = plot->xValue()->value(dpLower, mMainWindow->units());
const double xMax = plot->xValue()->value(dpUpper, mMainWindow->units());
QVector< double > xElev, yElev;
xElev << xMin << xMax;
yElev << plot->yValue(DataPlot::Elevation)->value(dpStart, mMainWindow->units())
<< plot->yValue(DataPlot::Elevation)->value(dpStart, mMainWindow->units());
QCPGraph *graph = plot->addGraph(
plot->axisRect()->axis(QCPAxis::atBottom),
plot->yValue(DataPlot::Elevation)->axis());
graph->setData(xElev, yElev);
graph->setPen(QPen(QBrush(Qt::lightGray), mMainWindow->lineThickness(), Qt::DashLine));
yElev.clear();
yElev << plot->yValue(DataPlot::Elevation)->value(dpEnd, mMainWindow->units())
<< plot->yValue(DataPlot::Elevation)->value(dpEnd, mMainWindow->units());
graph = plot->addGraph(
plot->axisRect()->axis(QCPAxis::atBottom),
plot->yValue(DataPlot::Elevation)->axis());
graph->setData(xElev, yElev);
graph->setPen(QPen(QBrush(Qt::lightGray), mMainWindow->lineThickness(), Qt::DashLine));
QCPItemRect *rect = new QCPItemRect(plot);
rect->setPen(QPen(QBrush(Qt::lightGray), mMainWindow->lineThickness(), Qt::DashLine));
rect->setBrush(QColor(0, 0, 0, 8));
rect->topLeft->setType(QCPItemPosition::ptAxisRectRatio);
rect->topLeft->setAxes(plot->xAxis, plot->yValue(DataPlot::Elevation)->axis());
rect->topLeft->setCoords(-0.1, -0.1);
rect->bottomRight->setType(QCPItemPosition::ptAxisRectRatio);
rect->bottomRight->setAxes(plot->xAxis, plot->yValue(DataPlot::Elevation)->axis());
rect->bottomRight->setCoords(
(plot->xValue()->value(dpStart, mMainWindow->units()) - xMin) / (xMax - xMin),
1.1);
rect = new QCPItemRect(plot);
rect->setPen(QPen(QBrush(Qt::lightGray), mMainWindow->lineThickness(), Qt::DashLine));
rect->setBrush(QColor(0, 0, 0, 8));
rect->topLeft->setType(QCPItemPosition::ptAxisRectRatio);
rect->topLeft->setAxes(plot->xAxis, plot->yValue(DataPlot::Elevation)->axis());
rect->topLeft->setCoords(
(plot->xValue()->value(dpEnd, mMainWindow->units()) - xMin) / (xMax - xMin),
-0.1);
rect->bottomRight->setType(QCPItemPosition::ptAxisRectRatio);
rect->bottomRight->setAxes(plot->xAxis, plot->yValue(DataPlot::Elevation)->axis());
rect->bottomRight->setCoords(1.1, 1.1);
}
}
示例12: font
void FileView::paint(QPainter* painter, const QRect& rect, const QPalette& palette, DisplayMode displayMode) const {
painter->save();
painter->setRenderHint(QPainter::Antialiasing, true);
painter->translate(rect.x(), rect.y());
if(displayMode == DM_Selected)
painter->setBrush(palette.highlightedText());
else
painter->setBrush(palette.foreground());
painter->setPen(QPen(painter->brush(), 1));
int textFlags = Qt::AlignLeft | Qt::AlignVCenter;
QFont font(painter->font());
font.setBold(true);
painter->setFont(font);
QString nameDisplay = (mode == TM_Send) ? tr("To: ") : tr("From: ");
nameDisplay.append(userName);
QRect textRect = QRect(54, 0, rect.width() - 58, 18);
QString text = painter->fontMetrics().elidedText(nameDisplay, Qt::ElideRight, textRect.width());
painter->drawText(textRect, textFlags, text);
font.setBold(false);
painter->setFont(font);
textRect = QRect(54, 18, rect.width() - 58, 18);
text = painter->fontMetrics().elidedText(fileDisplay, Qt::ElideMiddle, textRect.width());
painter->drawText(textRect, textFlags, text);
bool drawProgress = false;
QString stateDisplay;
switch(state) {
case TS_Send:
stateDisplay = timeDisplay + " left - " + posDisplay + " of " + sizeDisplay + " (" + speedDisplay + ")";
drawProgress = true;
break;
case TS_Receive:
stateDisplay = timeDisplay + " left - " + posDisplay + " of " + sizeDisplay + " (" + speedDisplay + ")";
drawProgress = true;
break;
case TS_Complete:
stateDisplay = tr("Completed");
break;
case TS_Cancel:
stateDisplay = tr("Canceled");
break;
case TS_Abort:
stateDisplay = tr("Interrupted");
break;
default:
break;
}
textRect = QRect(54, 36, rect.width() - 58, 18);
text = painter->fontMetrics().elidedText(stateDisplay, Qt::ElideRight, textRect.width());
painter->drawText(textRect, textFlags, text);
if(drawProgress) {
int spanAngle = ((double)position / (double)fileSize) * 360;
painter->setBrush(QBrush(QColor(230, 230, 230)));
painter->setPen(QPen(QColor(230, 230, 230)));
painter->drawPie(4, 4, 46, 46, (90 - spanAngle) * 16, -(360 - spanAngle) * 16);
painter->setBrush(QBrush(QColor(150, 225, 110)));
painter->setPen(QPen(QColor(150, 225, 110)));
painter->drawPie(4, 4, 46, 46, 90 * 16, -spanAngle * 16);
painter->setBrush(QBrush(QColor(255, 255, 255)));
painter->setPen(QPen(QColor(255, 255, 255), 2));
painter->drawLine(27, 5, 27, 49);
painter->drawLine(5, 27, 49, 27);
painter->drawLine(11, 11, 42, 42);
painter->drawLine(42, 11, 11, 42);
}
QRect imageRect(11, 11, 32, 32);
painter->drawPixmap(imageRect, icon);
painter->restore();
}
示例13: QColor
PluginUniform::PluginUniform()
{
mColor = QColor(220,204,173);
}
示例14: QSizeF
QSizeF QgsSymbolV2LegendNode::drawSymbol( const QgsLegendSettings& settings, ItemContext* ctx, double itemHeight ) const
{
QgsSymbolV2* s = mItem.symbol();
if ( !s )
{
return QSizeF();
}
// setup temporary render context
QgsRenderContext context;
context.setScaleFactor( settings.dpi() / 25.4 );
context.setRendererScale( settings.mapScale() );
context.setMapToPixel( QgsMapToPixel( 1 / ( settings.mmPerMapUnit() * context.scaleFactor() ) ) ); // hope it's ok to leave out other params
context.setForceVectorOutput( true );
context.setPainter( ctx ? ctx->painter : 0 );
//Consider symbol size for point markers
double height = settings.symbolSize().height();
double width = settings.symbolSize().width();
double size = 0;
//Center small marker symbols
double widthOffset = 0;
double heightOffset = 0;
if ( QgsMarkerSymbolV2* markerSymbol = dynamic_cast<QgsMarkerSymbolV2*>( s ) )
{
// allow marker symbol to occupy bigger area if necessary
size = markerSymbol->size() * QgsSymbolLayerV2Utils::lineWidthScaleFactor( context, s->outputUnit(), s->mapUnitScale() ) / context.scaleFactor();
height = size;
width = size;
if ( width < settings.symbolSize().width() )
{
widthOffset = ( settings.symbolSize().width() - width ) / 2.0;
}
if ( height < settings.symbolSize().height() )
{
heightOffset = ( settings.symbolSize().height() - height ) / 2.0;
}
}
if ( ctx )
{
double currentXPosition = ctx->point.x();
double currentYCoord = ctx->point.y() + ( itemHeight - settings.symbolSize().height() ) / 2;
QPainter* p = ctx->painter;
//setup painter scaling to dots so that raster symbology is drawn to scale
double dotsPerMM = context.scaleFactor();
int opacity = 255;
if ( QgsVectorLayer* vectorLayer = dynamic_cast<QgsVectorLayer*>( parent()->layer() ) )
opacity = 255 - ( 255 * vectorLayer->layerTransparency() / 100 );
p->save();
p->setRenderHint( QPainter::Antialiasing );
if ( opacity != 255 && settings.useAdvancedEffects() )
{
//semi transparent layer, so need to draw symbol to an image (to flatten it first)
//create image which is same size as legend rect, in case symbol bleeds outside its alloted space
QImage tempImage = QImage( QSize( width * dotsPerMM, height * dotsPerMM ), QImage::Format_ARGB32 );
QPainter imagePainter( &tempImage );
tempImage.fill( Qt::transparent );
imagePainter.translate( dotsPerMM * ( currentXPosition + widthOffset ),
dotsPerMM * ( currentYCoord + heightOffset ) );
s->drawPreviewIcon( &imagePainter, QSize( width * dotsPerMM, height * dotsPerMM ), &context );
//reduce opacity of image
imagePainter.setCompositionMode( QPainter::CompositionMode_DestinationIn );
imagePainter.fillRect( tempImage.rect(), QColor( 0, 0, 0, opacity ) );
//draw rendered symbol image
p->scale( 1.0 / dotsPerMM, 1.0 / dotsPerMM );
p->drawImage( 0, 0, tempImage );
}
else
{
p->translate( currentXPosition + widthOffset, currentYCoord + heightOffset );
p->scale( 1.0 / dotsPerMM, 1.0 / dotsPerMM );
s->drawPreviewIcon( p, QSize( width * dotsPerMM, height * dotsPerMM ), &context );
}
p->restore();
}
return QSizeF( qMax( width + 2 * widthOffset, settings.symbolSize().width() ),
qMax( height + 2 * heightOffset, settings.symbolSize().height() ) );
}
示例15: QPixmap
void ArthurFrame::paintEvent(QPaintEvent *e)
{
#ifdef Q_WS_QWS
static QPixmap *static_image = 0;
#else
static QImage *static_image = 0;
#endif
QPainter painter;
if (preferImage()
#ifdef QT_OPENGL_SUPPORT
&& !m_use_opengl
#endif
) {
if (!static_image || static_image->size() != size()) {
delete static_image;
#ifdef Q_WS_QWS
static_image = new QPixmap(size());
#else
static_image = new QImage(size(), QImage::Format_RGB32);
#endif
}
painter.begin(static_image);
int o = 10;
QBrush bg = palette().brush(QPalette::Background);
painter.fillRect(0, 0, o, o, bg);
painter.fillRect(width() - o, 0, o, o, bg);
painter.fillRect(0, height() - o, o, o, bg);
painter.fillRect(width() - o, height() - o, o, o, bg);
} else {
#ifdef QT_OPENGL_SUPPORT
if (m_use_opengl) {
painter.begin(glw);
painter.fillRect(QRectF(0, 0, glw->width(), glw->height()), palette().color(backgroundRole()));
} else {
painter.begin(this);
}
#else
painter.begin(this);
#endif
}
painter.setClipRect(e->rect());
painter.setRenderHint(QPainter::Antialiasing);
QPainterPath clipPath;
QRect r = rect();
qreal left = r.x() + 1;
qreal top = r.y() + 1;
qreal right = r.right();
qreal bottom = r.bottom();
qreal radius2 = 8 * 2;
clipPath.moveTo(right - radius2, top);
clipPath.arcTo(right - radius2, top, radius2, radius2, 90, -90);
clipPath.arcTo(right - radius2, bottom - radius2, radius2, radius2, 0, -90);
clipPath.arcTo(left, bottom - radius2, radius2, radius2, 270, -90);
clipPath.arcTo(left, top, radius2, radius2, 180, -90);
clipPath.closeSubpath();
painter.save();
painter.setClipPath(clipPath, Qt::IntersectClip);
painter.drawTiledPixmap(rect(), m_tile);
// client painting
paint(&painter);
painter.restore();
painter.save();
if (m_show_doc)
paintDescription(&painter);
painter.restore();
int level = 180;
painter.setPen(QPen(QColor(level, level, level), 2));
painter.setBrush(Qt::NoBrush);
painter.drawPath(clipPath);
if (preferImage()
#ifdef QT_OPENGL_SUPPORT
&& !m_use_opengl
#endif
) {
painter.end();
painter.begin(this);
#ifdef Q_WS_QWS
painter.drawPixmap(e->rect(), *static_image, e->rect());
#else
painter.drawImage(e->rect(), *static_image, e->rect());
#endif
}
#ifdef QT_OPENGL_SUPPORT
if (m_use_opengl && (inherits("PathDeformRenderer") || inherits("PathStrokeRenderer") || inherits("CompositionRenderer") || m_show_doc))
//.........这里部分代码省略.........