本文整理汇总了C++中QSizeF函数的典型用法代码示例。如果您正苦于以下问题:C++ QSizeF函数的具体用法?C++ QSizeF怎么用?C++ QSizeF使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QSizeF函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: QFETCH
void MercatorProjectionTest::screenCoordinatesOfCenter()
{
QFETCH( qreal, lon );
QFETCH( qreal, lat );
const GeoDataCoordinates coordinates( lon, lat, 0, GeoDataCoordinates::Degree );
ViewportParams viewport;
viewport.setProjection( Mercator );
viewport.setRadius( 360 / 4 ); // for easy mapping of lon <-> x
viewport.setSize( QSize( 2, 2 ) );
viewport.centerOn( lon * DEG2RAD, lat * DEG2RAD );
{
qreal x;
qreal y;
const bool retval = viewport.screenCoordinates( lon * DEG2RAD, lat * DEG2RAD, x, y );
QVERIFY( retval ); // FIXME: this should fail for lon < -180 || 180 < lon
QCOMPARE( x, lon - viewport.centerLongitude() * RAD2DEG + 1.0 );
QCOMPARE( y, 1.0 );
}
{
qreal x;
qreal y;
bool globeHidesPoint = true;
const bool retval = viewport.screenCoordinates( coordinates, x, y, globeHidesPoint );
QVERIFY( retval ); // FIXME: this should fail for lon < -180 || 180 < lon
QVERIFY( !globeHidesPoint );
QCOMPARE( x, lon - viewport.centerLongitude() * RAD2DEG + 1.0 );
QCOMPARE( y, 1.0 );
}
QVERIFY( viewport.currentProjection()->repeatX() );
{
qreal x[2];
qreal y;
int pointRepeatNum = 1000;
bool globeHidesPoint = true;
const bool retval = viewport.screenCoordinates( coordinates, x, y, pointRepeatNum, QSizeF( 0, 0 ), globeHidesPoint );
QVERIFY( retval );
QCOMPARE( pointRepeatNum, 1 );
QVERIFY( !globeHidesPoint );
QCOMPARE( x[0], 1.0 );
QCOMPARE( y, 1.0 );
}
}
开发者ID:MChemodanov,项目名称:marble,代码行数:54,代码来源:MercatorProjectionTest.cpp
示例2: qSqrt
QList<QSizeF> ratioList;
const qreal sqrt2 = qSqrt(2.);
ratioList
<< QSizeF(7, 5)
<< QSizeF(3, 2)
<< QSizeF(4, 3)
<< QSizeF(5, 4);
addRatioToComboBox(QSizeF(1, 1), i18n("Square"));
addRatioToComboBox(screenRatio(), i18n("This Screen"));
addSectionHeaderToComboBox(i18n("Landscape"));
Q_FOREACH(const QSizeF& size, ratioList) {
addRatioToComboBox(size);
}
addRatioToComboBox(QSizeF(sqrt2, 1), i18n("ISO Size (A4, A3...)"));
addRatioToComboBox(QSizeF(11, 8.5), i18n("US Letter"));
addSectionHeaderToComboBox(i18n("Portrait"));
Q_FOREACH(QSizeF size, ratioList) {
size.transpose();
addRatioToComboBox(size);
}
addRatioToComboBox(QSizeF(1, sqrt2), i18n("ISO Size (A4, A3...)"));
addRatioToComboBox(QSizeF(8.5, 11), i18n("US Letter"));
ratioComboBox->setMaxVisibleItems(ratioComboBox->count());
ratioComboBox->clearEditText();
QLineEdit* edit = qobject_cast<QLineEdit*>(ratioComboBox->lineEdit());
Q_ASSERT(edit);
// Do not use i18n("%1:%2") because ':' should not be translated, it is
开发者ID:cmacq2,项目名称:gwenview,代码行数:31,代码来源:cropwidget.cpp
示例3: ItemResizer
void LvlScene::setPhysEnvResizer(QGraphicsItem * targetRect, bool enabled, bool accept)
{
if((enabled)&&(pResizer==NULL))
{
MainWinConnect::pMainWin->on_actionSelect_triggered(); //Reset mode
int x = ((ItemWater *)targetRect)->waterData.x;
int y = ((ItemWater *)targetRect)->waterData.y;
int w = ((ItemWater *)targetRect)->waterData.w;
int h = ((ItemWater *)targetRect)->waterData.h;
pResizer = new ItemResizer( QSize(w, h), Qt::darkYellow, 16 );
this->addItem(pResizer);
pResizer->setPos(x, y);
pResizer->type=3;
pResizer->targetItem = targetRect;
pResizer->_minSize = QSizeF(16, 16);
this->setFocus(Qt::ActiveWindowFocusReason);
//DrawMode=true;
//MainWinConnect::pMainWin->activeLvlEditWin()->changeCursor(leveledit::MODE_Resizing);
SwitchEditingMode(MODE_Resizing);
MainWinConnect::pMainWin->resizeToolbarVisible(true);
}
else
{
if(pResizer!=NULL)
{
if(accept)
{
#ifdef _DEBUG_
WriteToLog(QtDebugMsg, QString("Water RESIZE -> to %1 x %2").arg(pResizer->_width).arg(pResizer->_height));
#endif
long x = pResizer->pos().x();
long y = pResizer->pos().y();
long w = pResizer->_width;
long h = pResizer->_height;
long oldX = ((ItemWater *)pResizer->targetItem)->waterData.x;
long oldY = ((ItemWater *)pResizer->targetItem)->waterData.y;
long oldW = ((ItemWater *)pResizer->targetItem)->waterData.w;
long oldH = ((ItemWater *)pResizer->targetItem)->waterData.h;
((ItemWater *)pResizer->targetItem)->waterData.x = x;
((ItemWater *)pResizer->targetItem)->waterData.y = y;
((ItemWater *)pResizer->targetItem)->waterData.w = w;
((ItemWater *)pResizer->targetItem)->waterData.h = h;
((ItemWater *)pResizer->targetItem)->setRectSize( QRect(x,y,w,h) );
LvlData->modified = true;
addResizeWaterHistory(((ItemWater *)pResizer->targetItem)->waterData, oldX, oldY, oldX+oldW, oldY+oldH, x, y, x+w, y+h);
//ChangeSectionBG(LvlData->sections[LvlData->CurSection].background);
//drawSpace();
}
delete pResizer;
pResizer = NULL;
MainWinConnect::pMainWin->on_actionSelect_triggered();
MainWinConnect::pMainWin->resizeToolbarVisible(false);
//resetResizingSection=true;
}
DrawMode=false;
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:62,代码来源:lvl_resizer_physenv.cpp
示例4: font
void KCategoryDrawer::drawCategory(const QModelIndex &index,
int /*sortRole*/,
const QStyleOption &option,
QPainter *painter) const
{
painter->setRenderHint(QPainter::Antialiasing);
const QString category = index.model()->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
const QRect optRect = option.rect;
QFont font(QApplication::font());
font.setBold(true);
const QFontMetrics fontMetrics = QFontMetrics(font);
QColor outlineColor = option.palette.text().color();
outlineColor.setAlphaF(0.35);
//BEGIN: top left corner
{
painter->save();
painter->setPen(outlineColor);
const QPointF topLeft(optRect.topLeft());
QRectF arc(topLeft, QSizeF(4, 4));
arc.translate(0.5, 0.5);
painter->drawArc(arc, 1440, 1440);
painter->restore();
}
//END: top left corner
//BEGIN: left vertical line
{
QPoint start(optRect.topLeft());
start.ry() += 3;
QPoint verticalGradBottom(optRect.topLeft());
verticalGradBottom.ry() += fontMetrics.height() + 5;
QLinearGradient gradient(start, verticalGradBottom);
gradient.setColorAt(0, outlineColor);
gradient.setColorAt(1, Qt::transparent);
painter->fillRect(QRect(start, QSize(1, fontMetrics.height() + 5)), gradient);
}
//END: left vertical line
//BEGIN: horizontal line
{
QPoint start(optRect.topLeft());
start.rx() += 3;
QPoint horizontalGradTop(optRect.topLeft());
horizontalGradTop.rx() += optRect.width() - 6;
painter->fillRect(QRect(start, QSize(optRect.width() - 6, 1)), outlineColor);
}
//END: horizontal line
//BEGIN: top right corner
{
painter->save();
painter->setPen(outlineColor);
QPointF topRight(optRect.topRight());
topRight.rx() -= 4;
QRectF arc(topRight, QSizeF(4, 4));
arc.translate(0.5, 0.5);
painter->drawArc(arc, 0, 1440);
painter->restore();
}
//END: top right corner
//BEGIN: right vertical line
{
QPoint start(optRect.topRight());
start.ry() += 3;
QPoint verticalGradBottom(optRect.topRight());
verticalGradBottom.ry() += fontMetrics.height() + 5;
QLinearGradient gradient(start, verticalGradBottom);
gradient.setColorAt(0, outlineColor);
gradient.setColorAt(1, Qt::transparent);
painter->fillRect(QRect(start, QSize(1, fontMetrics.height() + 5)), gradient);
}
//END: right vertical line
//BEGIN: text
{
QRect textRect(option.rect);
textRect.setTop(textRect.top() + 7);
textRect.setLeft(textRect.left() + 7);
textRect.setHeight(fontMetrics.height());
textRect.setRight(textRect.right() - 7);
painter->save();
painter->setFont(font);
QColor penColor(option.palette.text().color());
penColor.setAlphaF(0.6);
painter->setPen(penColor);
painter->drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, category);
painter->restore();
}
//END: text
}
开发者ID:CDrummond,项目名称:cantata,代码行数:95,代码来源:kcategorydrawer.cpp
示例5: Q_UNUSED
QSizeF QgsLayoutTable::fixedFrameSize( const int frameIndex ) const
{
Q_UNUSED( frameIndex );
return QSizeF( mTableSize.width(), 0 );
}
开发者ID:AlisterH,项目名称:Quantum-GIS,代码行数:5,代码来源:qgslayouttable.cpp
示例6: QRectF
QRectF MyPixmapItem::boundingRect() const{
return QRectF(QPointF(0, 0), QSizeF(sizex, sizey));
}
开发者ID:Holdlen2DH,项目名称:QSanguosha,代码行数:3,代码来源:chatwidget.cpp
示例7: QSizeF
void QgsComposerLegend::setSymbolWidth( double w ) { mSettings.setSymbolSize( QSizeF( w, mSettings.symbolSize().height() ) ); }
开发者ID:cayetanobv,项目名称:QGIS,代码行数:1,代码来源:qgscomposerlegend.cpp
示例8: QSizeF
QSizeF ImageLoaderFreeImage::size(Types::UnitsOfLength unit) const
{
const QSize sizePixels = this->sizePixels();
return QSizeF(sizePixels.width() / horizontalDotsPerUnitOfLength(unit), sizePixels.height() / verticalDotsPerUnitOfLength(unit));
}
开发者ID:ockham,项目名称:posterazor,代码行数:5,代码来源:imageloaderfreeimage.cpp
示例9: r1
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
//! [0]
QRect r1(100, 200, 11, 16);
QRect r2(QPoint(100, 200), QSize(11, 16));
//! [0]
//! [1]
QRectF r1(100.0, 200.1, 11.2, 16.3);
QRectF r2(QPointF(100.0, 200.1), QSizeF(11.2, 16.3));
//! [1]
开发者ID:RSATom,项目名称:Qt,代码行数:30,代码来源:src_corelib_tools_qrect.cpp
示例10: QSizeF
QSizeF PageMetrics::pxPageSize() const
{
return QSizeF(m_pxPageSize.width(),
m_pxPageSize.height());
}
开发者ID:dimkanovikov,项目名称:PagesTextEdit,代码行数:5,代码来源:PageMetrics.cpp
示例11: 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() ) ) );
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*>( layerNode()->layer() ) )
opacity = 255 - ( 255 * vectorLayer->layerTransparency() / 100 );
p->save();
p->setRenderHint( QPainter::Antialiasing );
p->translate( currentXPosition + widthOffset, currentYCoord + heightOffset );
p->scale( 1.0 / dotsPerMM, 1.0 / dotsPerMM );
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
QSize tempImageSize( width * dotsPerMM, height * dotsPerMM );
QImage tempImage = QImage( tempImageSize, QImage::Format_ARGB32 );
tempImage.fill( Qt::transparent );
QPainter imagePainter( &tempImage );
context.setPainter( &imagePainter );
s->drawPreviewIcon( &imagePainter, tempImageSize, &context );
context.setPainter( ctx->painter );
//reduce opacity of image
imagePainter.setCompositionMode( QPainter::CompositionMode_DestinationIn );
imagePainter.fillRect( tempImage.rect(), QColor( 0, 0, 0, opacity ) );
imagePainter.end();
//draw rendered symbol image
p->drawImage( 0, 0, tempImage );
}
else
{
s->drawPreviewIcon( p, QSize( width * dotsPerMM, height * dotsPerMM ), &context );
}
p->restore();
}
return QSizeF( qMax( width + 2 * widthOffset, ( double ) settings.symbolSize().width() ),
qMax( height + 2 * heightOffset, ( double ) settings.symbolSize().height() ) );
}
开发者ID:Margaral,项目名称:QGIS,代码行数:85,代码来源:qgslayertreemodellegendnode.cpp
示例12: switch
QSizeF VlcQmlVideoObject::ratioSize(Vlc::Ratio ratio)
{
switch( ratio )
{
default:
case Vlc::Original:
return QSizeF(0,0);
break;
case Vlc::R_16_9:
return QSizeF(16,9);
break;
case Vlc::R_16_10:
return QSizeF(16,10);
break;
case Vlc::R_185_100:
return QSizeF(185,100);
break;
case Vlc::R_221_100:
return QSizeF(221,100);
break;
case Vlc::R_235_100:
return QSizeF(235,100);
break;
case Vlc::R_239_100:
return QSizeF(239,100);
break;
case Vlc::R_4_3:
return QSizeF(4,3);
break;
case Vlc::R_5_4:
return QSizeF(5,4);
break;
case Vlc::R_5_3:
return QSizeF(5,3);
break;
case Vlc::R_1_1:
return QSizeF(1,1);
break;
}
return QSizeF(0,0);
}
开发者ID:Mowei,项目名称:vlc-qt,代码行数:41,代码来源:QmlVideoObject.cpp
示例13: renderCodeEAN13
//.........这里部分代码省略.........
rect->setRotationAxis(r.topLeft());
page->addPrimitive(rect);
}
pos += bar_width;
}
}
// render center guard
pos += bar_width;
rect = new ORORect(bc);
rect->setPen(pen);
rect->setBrush(brush);
rect->setRect(QRectF(pos,top, bar_width,draw_height));
rect->setRotationAxis(r.topLeft());
page->addPrimitive(rect);
pos += (bar_width * 2.0);
rect = new ORORect(bc);
rect->setPen(pen);
rect->setBrush(brush);
rect->setRect(QRectF(pos,top, bar_width,draw_height));
rect->setRotationAxis(r.topLeft());
page->addPrimitive(rect);
pos += (bar_width * 2.0);
// render last set
for(i = 0; i < 6; i++)
{
b = val[i+7];
for(w = 0; w < 7; w++)
{
if(_encodings[b][RIGHTHAND][w])
{
rect = new ORORect(bc);
rect->setPen(pen);
rect->setBrush(brush);
rect->setRect(QRectF(pos,top, bar_width,draw_height-0.07));
rect->setRotationAxis(r.topLeft());
page->addPrimitive(rect);
}
pos += bar_width;
}
}
// render close guard
rect = new ORORect(bc);
rect->setPen(pen);
rect->setBrush(brush);
rect->setRect(QRectF(pos,top, bar_width,draw_height));
rect->setRotationAxis(r.topLeft());
page->addPrimitive(rect);
pos += (bar_width * 2.0);
rect = new ORORect(bc);
rect->setPen(pen);
rect->setBrush(brush);
rect->setRect(QRectF(pos,top, bar_width,draw_height));
rect->setRotationAxis(r.topLeft());
page->addPrimitive(rect);
QString parstr = QString("%1").arg(val[0]);
QString leftstr = QString().sprintf("%d%d%d%d%d%d",
val[1], val[2], val[3], val[4], val[5], val[6]);
QString rightstr = QString().sprintf("%d%d%d%d%d%d",
val[7], val[8], val[9], val[10], val[11], val[12]);
QFont font("Arial", 6);
OROTextBox * tb = new OROTextBox(bc);
tb->setPosition(QPointF(r.left(), r.top() + draw_height - 0.12));
tb->setSize(QSizeF(quiet_zone - 0.02, 0.12));
tb->setFont(font);
tb->setText(parstr);
tb->setFlags(Qt::AlignRight | Qt::AlignTop);
tb->setRotationAxis(r.topLeft());
page->addPrimitive(tb);
tb = new OROTextBox(bc);
tb->setPosition(QPointF(r.left() + quiet_zone + bar_width*3, (r.top() + draw_height) - 0.07));
tb->setSize(QSizeF(bar_width*40, 0.1));
tb->setFont(font);
tb->setText(leftstr);
tb->setFlags(Qt::AlignHCenter | Qt::AlignTop);
tb->setRotationAxis(r.topLeft());
page->addPrimitive(tb);
tb = new OROTextBox(bc);
tb->setPosition(QPointF(r.left() + quiet_zone + bar_width*50, (r.top() + draw_height) - 0.07));
tb->setSize(QSizeF(bar_width*40, 0.1));
tb->setFont(font);
tb->setText(rightstr);
tb->setFlags(Qt::AlignHCenter | Qt::AlignTop);
tb->setRotationAxis(r.topLeft());
page->addPrimitive(tb);
return;
}
开发者ID:gpazo,项目名称:xtuple-svn,代码行数:101,代码来源:codeean.cpp
示例14: QSizeF
void QgsLayoutTable::recalculateFrameSizes()
{
mTableSize = QSizeF( totalWidth(), totalHeight() );
QgsLayoutMultiFrame::recalculateFrameSizes();
}
开发者ID:AlisterH,项目名称:Quantum-GIS,代码行数:5,代码来源:qgslayouttable.cpp
示例15: QStringLiteral
bool QgsComposerLegend::readXml( const QDomElement &itemElem, const QDomDocument &doc )
{
if ( itemElem.isNull() )
{
return false;
}
//read general properties
mTitle = itemElem.attribute( QStringLiteral( "title" ) );
mSettings.setTitle( mTitle );
if ( !itemElem.attribute( QStringLiteral( "titleAlignment" ) ).isEmpty() )
{
mSettings.setTitleAlignment( static_cast< Qt::AlignmentFlag >( itemElem.attribute( QStringLiteral( "titleAlignment" ) ).toInt() ) );
}
int colCount = itemElem.attribute( QStringLiteral( "columnCount" ), QStringLiteral( "1" ) ).toInt();
if ( colCount < 1 ) colCount = 1;
mColumnCount = colCount;
mSettings.setColumnCount( mColumnCount );
mSettings.setSplitLayer( itemElem.attribute( QStringLiteral( "splitLayer" ), QStringLiteral( "0" ) ).toInt() == 1 );
mSettings.setEqualColumnWidth( itemElem.attribute( QStringLiteral( "equalColumnWidth" ), QStringLiteral( "0" ) ).toInt() == 1 );
QDomNodeList stylesNodeList = itemElem.elementsByTagName( QStringLiteral( "styles" ) );
if ( !stylesNodeList.isEmpty() )
{
QDomNode stylesNode = stylesNodeList.at( 0 );
for ( int i = 0; i < stylesNode.childNodes().size(); i++ )
{
QDomElement styleElem = stylesNode.childNodes().at( i ).toElement();
QgsLegendStyle style;
style.readXml( styleElem, doc );
QString name = styleElem.attribute( QStringLiteral( "name" ) );
QgsLegendStyle::Style s;
if ( name == QLatin1String( "title" ) ) s = QgsLegendStyle::Title;
else if ( name == QLatin1String( "group" ) ) s = QgsLegendStyle::Group;
else if ( name == QLatin1String( "subgroup" ) ) s = QgsLegendStyle::Subgroup;
else if ( name == QLatin1String( "symbol" ) ) s = QgsLegendStyle::Symbol;
else if ( name == QLatin1String( "symbolLabel" ) ) s = QgsLegendStyle::SymbolLabel;
else continue;
setStyle( s, style );
}
}
//font color
QColor fontClr;
fontClr.setNamedColor( itemElem.attribute( QStringLiteral( "fontColor" ), QStringLiteral( "#000000" ) ) );
mSettings.setFontColor( fontClr );
//spaces
mSettings.setBoxSpace( itemElem.attribute( QStringLiteral( "boxSpace" ), QStringLiteral( "2.0" ) ).toDouble() );
mSettings.setColumnSpace( itemElem.attribute( QStringLiteral( "columnSpace" ), QStringLiteral( "2.0" ) ).toDouble() );
mSettings.setSymbolSize( QSizeF( itemElem.attribute( QStringLiteral( "symbolWidth" ), QStringLiteral( "7.0" ) ).toDouble(), itemElem.attribute( QStringLiteral( "symbolHeight" ), QStringLiteral( "14.0" ) ).toDouble() ) );
mSettings.setWmsLegendSize( QSizeF( itemElem.attribute( QStringLiteral( "wmsLegendWidth" ), QStringLiteral( "50" ) ).toDouble(), itemElem.attribute( QStringLiteral( "wmsLegendHeight" ), QStringLiteral( "25" ) ).toDouble() ) );
mSettings.setLineSpacing( itemElem.attribute( QStringLiteral( "lineSpacing" ), "1.0" ).toDouble() );
mSettings.setDrawRasterStroke( itemElem.attribute( QStringLiteral( "rasterBorder" ), QStringLiteral( "1" ) ) != QLatin1String( "0" ) );
mSettings.setRasterStrokeColor( QgsSymbolLayerUtils::decodeColor( itemElem.attribute( QStringLiteral( "rasterBorderColor" ), QStringLiteral( "0,0,0" ) ) ) );
mSettings.setRasterStrokeWidth( itemElem.attribute( QStringLiteral( "rasterBorderWidth" ), QStringLiteral( "0" ) ).toDouble() );
mSettings.setWrapChar( itemElem.attribute( QStringLiteral( "wrapChar" ) ) );
mSizeToContents = itemElem.attribute( QStringLiteral( "resizeToContents" ), QStringLiteral( "1" ) ) != QLatin1String( "0" );
//composer map
mLegendFilterByMap = itemElem.attribute( QStringLiteral( "legendFilterByMap" ), QStringLiteral( "0" ) ).toInt();
if ( !itemElem.attribute( QStringLiteral( "map" ) ).isEmpty() )
{
setComposerMap( mComposition->getComposerMapById( itemElem.attribute( QStringLiteral( "map" ) ).toInt() ) );
}
// QGIS >= 2.6
QDomElement layerTreeElem = itemElem.firstChildElement( QStringLiteral( "layer-tree" ) );
if ( layerTreeElem.isNull() )
layerTreeElem = itemElem.firstChildElement( QStringLiteral( "layer-tree-group" ) );
setCustomLayerTree( QgsLayerTree::readXml( layerTreeElem ) );
//restore general composer item properties
QDomNodeList composerItemList = itemElem.elementsByTagName( QStringLiteral( "ComposerItem" ) );
if ( !composerItemList.isEmpty() )
{
QDomElement composerItemElem = composerItemList.at( 0 ).toElement();
_readXml( composerItemElem, doc );
}
// < 2.0 projects backward compatibility >>>>>
//title font
QString titleFontString = itemElem.attribute( QStringLiteral( "titleFont" ) );
if ( !titleFontString.isEmpty() )
{
rstyle( QgsLegendStyle::Title ).rfont().fromString( titleFontString );
}
//group font
QString groupFontString = itemElem.attribute( QStringLiteral( "groupFont" ) );
if ( !groupFontString.isEmpty() )
{
rstyle( QgsLegendStyle::Group ).rfont().fromString( groupFontString );
}
//layer font
//.........这里部分代码省略.........
开发者ID:cayetanobv,项目名称:QGIS,代码行数:101,代码来源:qgscomposerlegend.cpp
示例16: Q_UNUSED
void KateCategoryDrawer::drawCategory(const QModelIndex &index,
int sortRole,
const QStyleOption &option,
QPainter *painter) const
{
Q_UNUSED(sortRole)
painter->setRenderHint(QPainter::Antialiasing);
const QRect optRect = option.rect;
QFont font(QApplication::font());
font.setBold(true);
const int height = categoryHeight(index, option);
const bool leftToRight = painter->layoutDirection() == Qt::LeftToRight;
//BEGIN: decoration gradient
{
QPainterPath path(optRect.bottomLeft());
path.lineTo(QPoint(optRect.topLeft().x(), optRect.topLeft().y() - 3));
const QPointF topLeft(optRect.topLeft());
QRectF arc(topLeft, QSizeF(4, 4));
path.arcTo(arc, 180, -90);
path.lineTo(optRect.topRight());
path.lineTo(optRect.bottomRight());
path.lineTo(optRect.bottomLeft());
QColor window(option.palette.window().color());
const QColor base(option.palette.base().color());
window.setAlphaF(0.4);
QLinearGradient decoGradient1;
if (leftToRight) {
decoGradient1.setStart(optRect.topLeft());
decoGradient1.setFinalStop(optRect.bottomLeft());
} else {
decoGradient1.setStart(optRect.topRight());
decoGradient1.setFinalStop(optRect.bottomRight());
}
decoGradient1.setColorAt(0, window);
decoGradient1.setColorAt(1, Qt::transparent);
QLinearGradient decoGradient2;
if (leftToRight) {
decoGradient2.setStart(optRect.topLeft());
decoGradient2.setFinalStop(optRect.topRight());
} else {
decoGradient2.setStart(optRect.topRight());
decoGradient2.setFinalStop(optRect.topLeft());
}
decoGradient2.setColorAt(0, Qt::transparent);
decoGradient2.setColorAt(1, base);
painter->fillPath(path, decoGradient1);
painter->fillPath(path, decoGradient2);
}
//END: decoration gradient
{
QRect newOptRect(optRect);
if (leftToRight) {
newOptRect.translate(1, 1);
} else {
newOptRect.translate(-1, 1);
}
//BEGIN: inner top left corner
{
painter->save();
painter->setPen(option.palette.base().color());
QRectF arc;
if (leftToRight) {
const QPointF topLeft(newOptRect.topLeft());
arc = QRectF(topLeft, QSizeF(4, 4));
arc.translate(0.5, 0.5);
painter->drawArc(arc, 1440, 1440);
} else {
QPointF topRight(newOptRect.topRight());
topRight.rx() -= 4;
arc = QRectF(topRight, QSizeF(4, 4));
arc.translate(-0.5, 0.5);
painter->drawArc(arc, 0, 1440);
}
painter->restore();
}
//END: inner top left corner
//BEGIN: inner left vertical line
{
QPoint start;
QPoint verticalGradBottom;
if (leftToRight) {
start = newOptRect.topLeft();
verticalGradBottom = newOptRect.topLeft();
} else {
start = newOptRect.topRight();
verticalGradBottom = newOptRect.topRight();
}
//.........这里部分代码省略.........
开发者ID:KDE,项目名称:ktexteditor,代码行数:101,代码来源:katecategorydrawer.cpp
示例17: Q_UNUSED
void QgsComposerLegend::paint( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget )
{
Q_UNUSED( itemStyle );
Q_UNUSED( pWidget );
if ( !painter )
return;
if ( !shouldDrawItem() )
{
return;
}
if ( mFilterAskedForUpdate )
{
mFilterAskedForUpdate = false;
doUpdateFilterByMap();
}
int dpi = painter->device()->logicalDpiX();
double dotsPerMM = dpi / 25.4;
if ( mComposition )
{
mSettings.setUseAdvancedEffects( mComposition->useAdvancedEffects() );
mSettings.setDpi( dpi );
}
if ( mComposerMap )
{
mSettings.setMmPerMapUnit( mComposerMap->mapUnitsToMM() );
// use a temporary QgsMapSettings to find out real map scale
QSizeF mapSizePixels = QSizeF( mComposerMap->rect().width() * dotsPerMM, mComposerMap->rect().height() * dotsPerMM );
QgsRectangle mapExtent = *mComposerMap->currentMapExtent();
QgsMapSettings ms = mComposerMap->mapSettings( mapExtent, mapSizePixels, dpi );
mSettings.setMapScale( ms.scale() );
}
mInitialMapScaleCalculated = true;
QgsLegendRenderer legendRenderer( mLegendModel, mSettings );
legendRenderer.setLegendSize( mForceResize && mSizeToContents ? QSize() : rect().size() );
//adjust box if width or height is too small
if ( mSizeToContents )
{
QSizeF size = legendRenderer.minimumSize();
if ( mForceResize )
{
mForceResize = false;
//set new rect, respecting position mode and data defined size/position
QRectF targetRect = QRectF( pos().x(), pos().y(), size.width(), size.height() );
setSceneRect( evalItemRect( targetRect, true ) );
}
else if ( size.height() > rect().height() || size.width() > rect().width() )
{
//need to resize box
QRectF targetRect = QRectF( pos().x(), pos().y(), rect().width(), rect().height() );
if ( size.height() > targetRect.height() )
targetRect.setHeight( size.height() );
if ( size.width() > rect().width() )
targetRect.setWidth( size.width() );
//set new rect, respecting position mode and data defined size/position
setSceneRect( evalItemRect( targetRect, true ) );
}
}
drawBackground( painter );
painter->save();
//antialiasing on
painter->setRenderHint( QPainter::Antialiasing, true );
painter->setPen( QPen( QColor( 0, 0, 0 ) ) );
if ( !mSizeToContents )
{
// set a clip region to crop out parts of legend which don't fit
QRectF thisPaintRect = QRectF( 0, 0, rect().width(), rect().height() );
painter->setClipRect( thisPaintRect );
}
legendRenderer.drawLegend( painter );
painter->restore();
//draw frame and selection boxes if necessary
drawFrame( painter );
if ( isSelected() )
{
drawSelectionBoxes( painter );
}
}
开发者ID:cayetanobv,项目名称:QGIS,代码行数:92,代码来源:qgscomposerlegend.cpp
示例18: QSizeF
void PageFormat::setSize(const PaperSize* size)
{
_size = QSizeF(size->w, size->h);
}
开发者ID:MatthewStein,项目名称:MuseScore,代码行数:4,代码来源:page.cpp
示例19: QSizeF
void QgsMapRenderer::setOutputSize( QSize size, int dpi )
{
mSize = QSizeF( size.width(), size.height() );
mScaleCalculator->setDpi( dpi );
adjustExtentToSize();
}
开发者ID:PhilippeDorelon,项目名称:Quantum-GIS,代码行数:6,代码来源:qgsmaprenderer.cpp
示例20: totalSize
void QgsComposerMultiFrame::recalculateFrameSizes()
{
if ( mFrameItems.size() < 1 )
{
return;
}
QSizeF size = totalSize();
double totalHeight = size.height();
if ( totalHeight < 1 )
{
return;
}
double currentY = 0;
double currentHeight = 0;
QgsComposerFrame *currentItem = nullptr;
for ( int i = 0; i < mFrameItems.size(); ++i )
{
if ( mResizeMode != RepeatOnEveryPage && currentY >= totalHeight )
{
if ( mResizeMode == RepeatUntilFinished || mResizeMode == ExtendToNextPage ) //remove unneeded frames in extent mode
{
bool removingPages = true;
for ( int j = mFrameItems.size(); j > i; --j )
{
int numPagesBefore = mComposition->numPages();
removeFrame( j - 1, removingPages );
//if removing the frame didn't also remove the page, then stop removing pages
removingPages = removingPages && ( mComposition->numPages() < numPagesBefore );
}
return;
}
}
currentItem = mFrameItems.value( i );
currentHeight = currentItem->rect().height();
if ( mResizeMode == RepeatOnEveryPage )
{
currentItem->setContentSection( QRectF( 0, 0, currentItem->rect().width(), currentHeight ) );
}
else
{
currentHeight = findNearbyPageBreak( currentY + currentHeight ) - currentY;
currentItem->setContentSection( QRectF( 0, currentY, currentItem->rect().width(), currentHeight ) );
}
currentItem->update();
currentY += currentHeight;
}
//at end of frames but there is still content left. Add other pages if ResizeMode ==
if ( mResizeMode != UseExistingFrames )
{
while ( ( mResizeMode == RepeatOnEveryPage ) || currentY < totalHeight )
{
//find out on which page the lower left point of the last frame is
int page = qFloor( ( currentItem->pos().y() + currentItem->rect().height() ) / ( mComposition->paperHeight() + mComposition->spaceBetweenPages() ) ) + 1;
if ( mResizeMode == RepeatOnEveryPage )
{
if ( page >= mComposition->numPages() )
{
break;
}
}
else
{
//add an extra page if required
if ( mComposition->numPages() < ( page + 1 ) )
{
mComposition->setNumPages( page + 1 );
}
}
double frameHeight = 0;
if ( mResizeMode == RepeatUntilFinished || mResizeMode == RepeatOnEveryPage )
{
frameHeight = currentItem->rect().height();
}
else //mResizeMode == ExtendToNextPage
{
frameHeight = ( currentY + mComposition->paperHeight() ) > totalHeight ? totalHeight - currentY : mComposition->paperHeight();
}
double newFrameY = page * ( mComposition->paperHeight() + mComposition->spaceBetweenPages() );
if ( mResizeMode == RepeatUntilFinished || mResizeMode == RepeatOnEveryPage )
{
newFrameY += currentItem->pos().y() - ( page - 1 ) * ( mComposition->paperHeight() + mComposition->spaceBetweenPages() );
}
//create new frame
QgsComposerFrame *newFrame = createNewFrame( currentItem,
QPointF( currentItem->pos().x(), newFrameY ),
QSizeF( currentItem->rect().width(), frameHeight ) );
if ( mResizeMode == RepeatOnEveryPage )
{
newFrame->setContentSection( QRectF( 0, 0, newFrame->rect().width(), newFrame->rect().height() ) );
//.........这里部分代码省略.........
开发者ID:cayetanobv,项目名称:QGIS,代码行数:101,代码来源:qgscomposermultiframe.cpp
注:本文中的QSizeF函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论