本文整理汇总了C++中palette函数的典型用法代码示例。如果您正苦于以下问题:C++ palette函数的具体用法?C++ palette怎么用?C++ palette使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了palette函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: maxValue
/*!
Redraw the liquid in thermometer pipe.
\param painter Painter
\param pipeRect Bounding rectangle of the pipe without borders
*/
void QwtThermo::drawLiquid(
QPainter *painter, const QRect &pipeRect ) const
{
painter->save();
painter->setClipRect( pipeRect, Qt::IntersectClip );
const bool inverted = ( maxValue() < minValue() );
if ( d_data->colorMap != NULL )
{
QwtInterval interval( d_data->minValue, d_data->maxValue );
interval = interval.normalized();
// Because the positions of the ticks are rounded
// we calculate the colors for the rounded tick values
QVector<double> values = qwtTickList(
scaleDraw()->scaleDiv(), d_data->value );
if ( d_data->map.isInverting() )
qSort( values.begin(), values.end(), qGreater<double>() );
else
qSort( values.begin(), values.end(), qLess<double>() );
int from;
if ( !values.isEmpty() )
{
from = qRound( d_data->map.transform( values[0] ) );
qwtDrawLine( painter, from,
d_data->colorMap->color( interval, values[0] ),
pipeRect, d_data->orientation );
}
for ( int i = 1; i < values.size(); i++ )
{
const int to = qRound( d_data->map.transform( values[i] ) );
for ( int pos = from + 1; pos < to; pos++ )
{
const double v = d_data->map.invTransform( pos );
qwtDrawLine( painter, pos,
d_data->colorMap->color( interval, v ),
pipeRect, d_data->orientation );
}
qwtDrawLine( painter, to,
d_data->colorMap->color( interval, values[i] ),
pipeRect, d_data->orientation );
from = to;
}
}
else
{
const int tval = qRound( d_data->map.transform( d_data->value ) );
QRect fillRect = pipeRect;
if ( d_data->orientation == Qt::Horizontal )
{
if ( inverted )
fillRect.setLeft( tval );
else
fillRect.setRight( tval );
}
else // Qt::Vertical
{
if ( inverted )
fillRect.setBottom( tval );
else
fillRect.setTop( tval );
}
if ( d_data->alarmEnabled &&
d_data->value >= d_data->alarmLevel )
{
QRect alarmRect = fillRect;
const int taval = qRound( d_data->map.transform( d_data->alarmLevel ) );
if ( d_data->orientation == Qt::Horizontal )
{
if ( inverted )
alarmRect.setRight( taval );
else
alarmRect.setLeft( taval );
}
else
{
if ( inverted )
alarmRect.setTop( taval );
else
alarmRect.setBottom( taval );
}
fillRect = QRegion( fillRect ).subtracted( alarmRect ).boundingRect();
painter->fillRect( alarmRect, palette().brush( QPalette::Highlight ) );
//.........这里部分代码省略.........
示例2: fillBrush
/*!
\brief Change the brush of the liquid.
Changes the QPalette::ButtonText brush of the palette.
\param brush New brush.
\sa fillBrush(), QWidget::setPalette()
*/
void QwtThermo::setFillBrush( const QBrush& brush )
{
QPalette pal = palette();
pal.setBrush( QPalette::ButtonText, brush );
setPalette( pal );
}
示例3: alarmBrush
/*!
\brief Specify the liquid brush above the alarm threshold
Changes the QPalette::Highlight brush of the palette.
\param brush New brush.
\sa alarmBrush(), QWidget::setPalette()
\warning The alarm threshold has no effect, when
a color map has been assigned
*/
void QwtThermo::setAlarmBrush( const QBrush& brush )
{
QPalette pal = palette();
pal.setBrush( QPalette::Highlight, brush );
setPalette( pal );
}
示例4: QDockWidget
PaletteDockerDock::PaletteDockerDock( )
: QDockWidget(i18n("Palette"))
, m_wdgPaletteDock(new Ui_WdgPaletteDock())
, m_currentColorSet(0)
, m_resourceProvider(0)
, m_canvas(0)
{
QWidget* mainWidget = new QWidget(this);
setWidget(mainWidget);
m_wdgPaletteDock->setupUi(mainWidget);
m_wdgPaletteDock->bnAdd->setIcon(KisIconUtils::loadIcon("list-add"));
m_wdgPaletteDock->bnAdd->setIconSize(QSize(16, 16));
m_wdgPaletteDock->bnAddDialog->setIcon(KisIconUtils::loadIcon("document-new"));
m_wdgPaletteDock->bnAddDialog->setIconSize(QSize(16, 16));
m_wdgPaletteDock->bnRemove->setIcon(KisIconUtils::loadIcon("edit-delete"));
m_wdgPaletteDock->bnRemove->setIconSize(QSize(16, 16));
m_wdgPaletteDock->bnAdd->setEnabled(false);
m_wdgPaletteDock->bnRemove->setEnabled(false);
connect(m_wdgPaletteDock->bnAdd, SIGNAL(clicked(bool)), this, SLOT(addColorForeground()));
connect(m_wdgPaletteDock->bnAddDialog, SIGNAL(clicked(bool)), this, SLOT(addColor()));
connect(m_wdgPaletteDock->bnRemove, SIGNAL(clicked(bool)), this, SLOT(removeColor()));
m_model = new PaletteModel(this);
m_wdgPaletteDock->paletteView->setModel(m_model);
m_wdgPaletteDock->paletteView->setShowGrid(false);
m_wdgPaletteDock->paletteView->horizontalHeader()->setVisible(false);
m_wdgPaletteDock->paletteView->verticalHeader()->setVisible(false);
m_wdgPaletteDock->paletteView->setItemDelegate(new PaletteDelegate());
KisConfig cfg;
QPalette pal(palette());
pal.setColor(QPalette::Base, cfg.getMDIBackgroundColor());
m_wdgPaletteDock->paletteView->setAutoFillBackground(true);
m_wdgPaletteDock->paletteView->setPalette(pal);
connect(m_wdgPaletteDock->paletteView, SIGNAL(clicked(QModelIndex)), this, SLOT(entrySelected(QModelIndex)));
m_wdgPaletteDock->paletteView->viewport()->installEventFilter(this);
KoResourceServer<KoColorSet>* rServer = KoResourceServerProvider::instance()->paletteServer(false);
m_serverAdapter = QSharedPointer<KoAbstractResourceServerAdapter>(new KoResourceServerAdapter<KoColorSet>(rServer));
m_serverAdapter->connectToResourceServer();
rServer->addObserver(this);
m_colorSetChooser = new ColorSetChooser(this);
connect(m_colorSetChooser, SIGNAL(paletteSelected(KoColorSet*)), this, SLOT(setColorSet(KoColorSet*)));
m_wdgPaletteDock->bnColorSets->setIcon(KisIconUtils::loadIcon("hi16-palette_library"));
m_wdgPaletteDock->bnColorSets->setToolTip(i18n("Choose palette"));
m_wdgPaletteDock->bnColorSets->setPopupWidget(m_colorSetChooser);
int defaultSectionSize = cfg.paletteDockerPaletteViewSectionSize();
m_wdgPaletteDock->paletteView->horizontalHeader()->setDefaultSectionSize(defaultSectionSize);
m_wdgPaletteDock->paletteView->verticalHeader()->setDefaultSectionSize(defaultSectionSize);
QString defaultPalette = cfg.defaultPalette();
KoColorSet* defaultColorSet = rServer->resourceByName(defaultPalette);
if (defaultColorSet) {
setColorSet(defaultColorSet);
}
}
示例5: QWidget
//! [0]
DragWidget::DragWidget(QWidget *parent)
: QWidget(parent)
{
QFile dictionaryFile(":/dictionary/words.txt");
dictionaryFile.open(QFile::ReadOnly);
QTextStream inputStream(&dictionaryFile);
//! [0]
//! [1]
int x = 5;
int y = 5;
while (!inputStream.atEnd()) {
QString word;
inputStream >> word;
if (!word.isEmpty()) {
DragLabel *wordLabel = new DragLabel(word, this);
wordLabel->move(x, y);
wordLabel->show();
wordLabel->setAttribute(Qt::WA_DeleteOnClose);
x += wordLabel->width() + 2;
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
if (x >= 345) {
#else
if (x >= 245) {
#endif
x = 5;
y += wordLabel->height() + 2;
}
}
}
//! [1]
//! [2]
#ifndef Q_WS_S60
//Fridge magnets is used for demoing Qt on S60 and themed backgrounds look better than white
QPalette newPalette = palette();
newPalette.setColor(QPalette::Window, Qt::white);
setPalette(newPalette);
#endif
setMinimumSize(400, qMax(200, y));
setWindowTitle(tr("Fridge Magnets"));
//! [2] //! [3]
setAcceptDrops(true);
}
//! [3]
//! [4]
void DragWidget::dragEnterEvent(QDragEnterEvent *event)
{
//! [4] //! [5]
if (event->mimeData()->hasFormat("application/x-fridgemagnet")) {
if (children().contains(event->source())) {
event->setDropAction(Qt::MoveAction);
event->accept();
} else {
event->acceptProposedAction();
//! [5] //! [6]
}
//! [6] //! [7]
} else if (event->mimeData()->hasText()) {
event->acceptProposedAction();
} else {
event->ignore();
}
}
//! [7]
//! [8]
void DragWidget::dragMoveEvent(QDragMoveEvent *event)
{
if (event->mimeData()->hasFormat("application/x-fridgemagnet")) {
if (children().contains(event->source())) {
event->setDropAction(Qt::MoveAction);
event->accept();
} else {
event->acceptProposedAction();
}
} else if (event->mimeData()->hasText()) {
event->acceptProposedAction();
} else {
event->ignore();
}
}
//! [8]
//! [9]
void DragWidget::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasFormat("application/x-fridgemagnet")) {
const QMimeData *mime = event->mimeData();
//! [9] //! [10]
QByteArray itemData = mime->data("application/x-fridgemagnet");
QDataStream dataStream(&itemData, QIODevice::ReadOnly);
QString text;
QPoint offset;
dataStream >> text >> offset;
//.........这里部分代码省略.........
示例6: testPaintAttribute
void QwtPlotCanvas::drawCanvas( QPainter *painter, bool withBackground )
{
bool hackStyledBackground = false;
if ( withBackground && testAttribute( Qt::WA_StyledBackground )
&& testPaintAttribute( HackStyledBackground ) )
{
// Antialiasing rounded borders is done by
// inserting pixels with colors between the
// border color and the color on the canvas,
// When the border is painted before the plot items
// these colors are interpolated for the canvas
// and the plot items need to be clipped excluding
// the anialiased pixels. In situations, where
// the plot items fill the area at the rounded
// borders this is noticeable.
// The only way to avoid these annoying "artefacts"
// is to paint the border on top of the plot items.
if ( d_data->styleSheet.hasBorder &&
!d_data->styleSheet.borderPath.isEmpty() )
{
// We have a border with at least one rounded corner
hackStyledBackground = true;
}
}
if ( withBackground )
{
painter->save();
if ( testAttribute( Qt::WA_StyledBackground ) )
{
if ( hackStyledBackground )
{
// paint background without border
painter->setPen( Qt::NoPen );
painter->setBrush( d_data->styleSheet.background.brush );
painter->setBrushOrigin( d_data->styleSheet.background.origin );
painter->setClipPath( d_data->styleSheet.borderPath );
painter->drawRect( contentsRect() );
}
else
{
qwtDrawStyledBackground( this, painter );
}
}
else if ( autoFillBackground() )
{
painter->setPen( Qt::NoPen );
painter->setBrush( palette().brush( backgroundRole() ) );
if ( d_data->borderRadius > 0.0 && ( rect() == frameRect() ) )
{
if ( frameWidth() > 0 )
{
painter->setClipPath( borderPath( rect() ) );
painter->drawRect( rect() );
}
else
{
painter->setRenderHint( QPainter::Antialiasing, true );
painter->drawPath( borderPath( rect() ) );
}
}
else
{
painter->drawRect( rect() );
}
}
painter->restore();
}
painter->save();
if ( !d_data->styleSheet.borderPath.isEmpty() )
{
painter->setClipPath(
d_data->styleSheet.borderPath, Qt::IntersectClip );
}
else
{
if ( d_data->borderRadius > 0.0 )
painter->setClipPath( borderPath( frameRect() ), Qt::IntersectClip );
else
painter->setClipRect( contentsRect(), Qt::IntersectClip );
}
plot()->drawCanvas( painter );
painter->restore();
if ( withBackground && hackStyledBackground )
{
// Now paint the border on top
QStyleOptionFrame opt;
opt.initFrom(this);
style()->drawPrimitive( QStyle::PE_Frame, &opt, painter, this);
//.........这里部分代码省略.........
示例7: setBorderRadius
/*!
Draw the border of the plot canvas
\param painter Painter
\sa setBorderRadius()
*/
void QwtPlotCanvas::drawBorder( QPainter *painter )
{
if ( d_data->borderRadius > 0 )
{
if ( frameWidth() > 0 )
{
QwtPainter::drawRoundedFrame( painter, QRectF( frameRect() ),
d_data->borderRadius, d_data->borderRadius,
palette(), frameWidth(), frameStyle() );
}
}
else
{
#if QT_VERSION >= 0x040500
#if !defined(_MSC_VER)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
QStyleOptionFrameV3 opt;
#if !defined(_MSC_VER)
#pragma GCC diagnostic pop
#endif
opt.init(this);
int frameShape = frameStyle() & QFrame::Shape_Mask;
int frameShadow = frameStyle() & QFrame::Shadow_Mask;
opt.frameShape = QFrame::Shape( int( opt.frameShape ) | frameShape );
#if 0
opt.rect = frameRect();
#endif
switch (frameShape)
{
case QFrame::Box:
case QFrame::HLine:
case QFrame::VLine:
case QFrame::StyledPanel:
case QFrame::Panel:
{
opt.lineWidth = lineWidth();
opt.midLineWidth = midLineWidth();
break;
}
default:
{
opt.lineWidth = frameWidth();
break;
}
}
if ( frameShadow == Sunken )
opt.state |= QStyle::State_Sunken;
else if ( frameShadow == Raised )
opt.state |= QStyle::State_Raised;
style()->drawControl(QStyle::CE_ShapedFrame, &opt, painter, this);
#else
drawFrame( painter );
#endif
}
}
示例8: setPalette
void ClassName::setFrameColor(const QColor& color)
{
d->frameColor = color;
//update light and dark colors
setPalette(palette());
}
示例9: QColor
QwtCompass *CompassGrid::createCompass( int pos )
{
int c;
QPalette palette0;
for ( c = 0; c < QPalette::NColorRoles; c++ )
{
const QPalette::ColorRole colorRole =
static_cast<QPalette::ColorRole>( c );
palette0.setColor( colorRole, QColor() );
}
palette0.setColor( QPalette::Base,
palette().color( backgroundRole() ).light( 120 ) );
palette0.setColor( QPalette::WindowText,
palette0.color( QPalette::Base ) );
QwtCompass *compass = new QwtCompass( this );
compass->setLineWidth( 4 );
compass->setFrameShadow(
pos <= 2 ? QwtCompass::Sunken : QwtCompass::Raised );
switch( pos )
{
case 0:
{
/*
A compass with a rose and no needle. Scale and rose are
rotating.
*/
compass->setMode( QwtCompass::RotateScale );
QwtSimpleCompassRose *rose = new QwtSimpleCompassRose( 16, 2 );
rose->setWidth( 0.15 );
compass->setRose( rose );
break;
}
case 1:
{
/*
A windrose, with a scale indicating the main directions only
*/
QMap<double, QString> map;
map.insert( 0.0, "N" );
map.insert( 90.0, "E" );
map.insert( 180.0, "S" );
map.insert( 270.0, "W" );
compass->setScaleDraw( new QwtCompassScaleDraw( map ) );
QwtSimpleCompassRose *rose = new QwtSimpleCompassRose( 4, 1 );
compass->setRose( rose );
compass->setNeedle(
new QwtCompassWindArrow( QwtCompassWindArrow::Style2 ) );
compass->setValue( 60.0 );
break;
}
case 2:
{
/*
A compass with a rotating needle in darkBlue. Shows
a ticks for each degree.
*/
palette0.setColor( QPalette::Base, Qt::darkBlue );
palette0.setColor( QPalette::WindowText,
QColor( Qt::darkBlue ).dark( 120 ) );
palette0.setColor( QPalette::Text, Qt::white );
QwtCompassScaleDraw *scaleDraw = new QwtCompassScaleDraw();
scaleDraw->enableComponent( QwtAbstractScaleDraw::Ticks, true );
scaleDraw->enableComponent( QwtAbstractScaleDraw::Labels, true );
scaleDraw->enableComponent( QwtAbstractScaleDraw::Backbone, false );
scaleDraw->setTickLength( QwtScaleDiv::MinorTick, 1 );
scaleDraw->setTickLength( QwtScaleDiv::MediumTick, 1 );
scaleDraw->setTickLength( QwtScaleDiv::MajorTick, 3 );
compass->setScaleDraw( scaleDraw );
compass->setScaleMaxMajor( 36 );
compass->setScaleMaxMinor( 5 );
compass->setNeedle(
new QwtCompassMagnetNeedle( QwtCompassMagnetNeedle::ThinStyle ) );
compass->setValue( 220.0 );
break;
}
case 3:
{
/*
A compass without a frame, showing numbers as tick labels.
The origin is at 220.0
*/
palette0.setColor( QPalette::Base,
palette().color( backgroundRole() ) );
palette0.setColor( QPalette::WindowText, Qt::blue );
//.........这里部分代码省略.........
示例10: palette
/**
* @brief Builds stylesheet for this WorkAreaTabBar widget.
*/
QString WorkAreaTabBar::buildStyleSheet()
{
QColor background = palette().window().color();
QColor gradientZero = QColor("#ffffff");//Qt::white;//.lighter(103);
QColor gradientOne = background.lighter(104);//Qt::white;//.lighter(103);
QColor gradientTwo = background.lighter(108);//.lighter(103);
QColor selectedBorder = background.darker(103);
QString aga1 = gradientOne.name();
QString aga2 = gradientTwo.name();
QString aga3 = background.name();
QString styles = QString(
"QTabBar::tab:first {"
"margin-left: 4px;"
"} "
"QTabBar::tab:last {"
"margin-right: 1px;"
"} "
"QTabBar::close-button { "
"image: url(:/robomongo/icons/close_2_16x16.png);"
"width: 10px;"
"height: 10px;"
"}"
"QTabBar::close-button:hover { "
"image: url(:/robomongo/icons/close_hover_16x16.png);"
"width: 15px;"
"height: 15px;"
"}"
"QTabBar::tab {"
"background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
"stop: 0 #F0F0F0, stop: 0.4 #DEDEDE,"
"stop: 0.5 #E6E6E6, stop: 1.0 #E1E1E1);"
"border: 1px solid #C4C4C3;"
"border-bottom-color: #B8B7B6;" // #C2C7CB same as the pane color
"border-top-left-radius: 6px;"
"border-top-right-radius: 6px;"
// "min-width: 8ex;"
"max-width: 200px;"
"padding: 4px 0px 5px 0px;"
"margin: 0px;"
"margin-left: 1px;"
"margin-right: -3px;" // it should be -(tab:first:margin-left + tab:last:margin-left) to fix incorrect text elidement
"}"
"QTabBar::tab:selected, QTabBar::tab:hover {"
"background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
"stop: 0 %1, stop: 0.3 %2," //#fafafa, #f4f4f4
"stop: 0.6 %3, stop: 1.0 %4);" //#e7e7e7, #fafafa
"}"
"QTabBar::tab:selected {"
"border-color: #9B9B9B;" //
"border-bottom-color: %4;" //#fafafa
"}"
"QTabBar::tab:!selected {"
"margin-top: 2px;" // make non-selected tabs look smaller
"} "
"QTabBar::tab:only-one { margin-top: 2px; margin-left:4px; }"
).arg(gradientZero.name(), gradientOne.name(), gradientTwo.name(), "#ffffff");
QString aga = palette().window().color().name();
return styles;
}
示例11: QWidget
PopupView::PopupView(const QModelIndex &index, const QPoint &pos,
const bool &showPreview, const QStringList &previewPlugins,
const IconView *parentView)
: QWidget(0, Qt::X11BypassWindowManagerHint),
m_view(0),
m_parentView(parentView),
m_busyWidget(0),
m_iconView(0),
m_parentViewModel(0),
m_dirModel(0),
m_model(0),
m_actionCollection(this),
m_newMenu(0),
m_itemActions(0),
m_showingMenu(false),
m_showPreview(showPreview),
m_delayedClose(false),
m_previewPlugins(previewPlugins)
{
setAttribute(Qt::WA_TranslucentBackground);
#ifdef Q_WS_X11
if (KWindowSystem::compositingActive()) {
setAttribute(Qt::WA_NoSystemBackground, false);
}
#endif
#ifdef Q_WS_WIN
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool);
#endif
KWindowSystem::setState(effectiveWinId(), NET::SkipTaskbar | NET::SkipPager);
setAcceptDrops(true);
QPalette pal = palette();
pal.setColor(backgroundRole(), Qt::transparent);
pal.setColor(QPalette::Text, Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor));
setPalette(pal);
m_parentViewModel = static_cast<const ProxyModel*>(index.model());
KFileItem item = m_parentViewModel->itemForIndex(index);
if (item.isDesktopFile()) {
KDesktopFile file(item.localPath());
m_url = file.readUrl();
} else {
m_url = item.targetUrl();
}
m_background = new Plasma::FrameSvg(this);
m_background->setImagePath("dialogs/background");
int left = m_background->marginSize(Plasma::LeftMargin);
int top = m_background->marginSize(Plasma::TopMargin);
int right = m_background->marginSize(Plasma::RightMargin);
int bottom = m_background->marginSize(Plasma::BottomMargin);
setContentsMargins(left, top, right, bottom);
resize(parentView->sizeForRowsColumns(2, 3) + QSize(left + right, top + bottom));
const QRect available = QApplication::desktop()->availableGeometry(pos);
QPoint pt = pos;
if (pt.x() + width() > available.right()) {
pt.rx() -= width();
}
if (pt.x() < available.left()) {
pt.rx() = available.left();
}
if (pt.y() + height() > available.bottom()) {
pt.ry() -= height();
}
if (pt.y() < available.top()) {
pt.ry() = available.top();
}
Plasma::WindowEffects::overrideShadow(winId(), true);
move(pt);
show();
QTimer::singleShot(10, this, SLOT(init()));
s_lastOpenClose.restart();
}
示例12: rect
void
OSDWidget::paintEvent( QPaintEvent *e )
{
const int& M = m_m;
const QSize& size = m_size;
QPoint point;
QRect rect( point, size );
rect.adjust( 0, 0, -1, -1 );
QColor shadowColor;
{
int h, s, v;
palette().color( QPalette::Normal, QPalette::Foreground ).getHsv( &h, &s, &v );
shadowColor = v > 128 ? Qt::black : Qt::white;
}
int align = Qt::AlignCenter | Qt::TextWordWrap;
QPainter p( this );
p.setRenderHints( QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform | QPainter::HighQualityAntialiasing );
p.setClipRect( e->rect() );
QPixmap background = The::svgHandler()->renderSvgWithDividers( "service_list_item", width(), height(), "service_list_item" );
p.drawPixmap( 0, 0, background );
p.setPen( Qt::white ); // Revert this when the background can be colorized again.
rect.adjust( M, M, -M, -M );
if( !m_cover.isNull() )
{
QRect r( rect );
r.setTop( ( size.height() - m_scaledCover.height() ) / 2 );
r.setSize( m_scaledCover.size() );
p.drawPixmap( r.topLeft(), m_scaledCover );
rect.setLeft( rect.left() + m_scaledCover.width() + M );
}
int graphicsHeight = 0;
if( !m_showVolume && m_rating > 0 && !m_paused )
{
// TODO: Check if we couldn't use a KRatingPainter instead
QPixmap* star = StarManager::instance()->getStar( m_rating/2 );
QRect r( rect );
//Align to center...
r.setLeft( ( rect.left() + rect.width() / 2 ) - star->width() * m_rating / 4 );
r.setTop( rect.bottom() - star->height() );
graphicsHeight += star->height() + M;
bool half = m_rating % 2;
if( half )
{
QPixmap* halfStar = StarManager::instance()->getHalfStar( m_rating / 2 + 1 );
p.drawPixmap( r.left() + star->width() * ( m_rating / 2 ), r.top(), *halfStar );
star = StarManager::instance()->getStar( m_rating / 2 + 1 );
}
for( int i = 0; i < m_rating / 2; i++ )
{
p.drawPixmap( r.left() + i * star->width(), r.top(), *star );
}
}
rect.setBottom( rect.bottom() - graphicsHeight );
// Draw "shadow" text effect (black outline)
if( m_drawShadow )
{
QPixmap pixmap( rect.size() + QSize( 10, 10 ) );
pixmap.fill( Qt::black );
QPainter p2( &pixmap );
p2.setFont( font() );
p2.setPen( Qt::white );
p2.setBrush( Qt::white );
p2.drawText( QRect( QPoint( 5, 5 ), rect.size() ), align, m_text );
p2.end();
p.drawImage( rect.topLeft() - QPoint( 5, 5 ), ShadowEngine::makeShadow( pixmap, shadowColor ) );
}
p.setPen( palette().color( QPalette::Active, QPalette::WindowText ) );
//p.setPen( Qt::white ); // This too.
p.drawText( rect, align, m_text );
}
示例13: painter
void ByteViewText::paintEvent(QPaintEvent *)
{
QPainter painter(viewport());
painter.translate(-horizontalScrollBar()->value() * font_width_, 0);
// Pixel offset of this row
int row_y = 0;
// Starting byte offset
int offset = verticalScrollBar()->value() * row_width_;
// Clear the area
painter.fillRect(viewport()->rect(), palette().base());
// Offset background. We want the entire height to be filled.
if (show_offset_) {
QRect offset_rect = QRect(viewport()->rect());
offset_rect.setWidth(offsetPixels());
painter.fillRect(offset_rect, palette().window());
}
if ( data_.isEmpty() ) {
return;
}
// Data rows
int widget_height = height();
int leading = fontMetrics().leading();
painter.save();
x_pos_to_column_.clear();
while( (int) (row_y + line_height_) < widget_height && offset < (int) data_.count()) {
drawLine(&painter, offset, row_y);
offset += row_width_;
row_y += line_height_ + leading;
}
painter.restore();
// We can't do this in drawLine since the next line might draw over our rect.
if (!hover_outlines_.isEmpty()) {
qreal pen_width = 1.0;
qreal hover_alpha = 0.6;
QPen ho_pen;
QColor ho_color = palette().text().color();
if (marked_byte_offset_ < 0) {
hover_alpha = 0.3;
if (devicePixelRatio() > 1) {
pen_width = 0.5;
}
}
ho_pen.setWidthF(pen_width);
ho_color.setAlphaF(hover_alpha);
ho_pen.setColor(ho_color);
painter.save();
painter.setPen(ho_pen);
painter.setBrush(Qt::NoBrush);
foreach (QRect ho_rect, hover_outlines_) {
// These look good on retina and non-retina displays on macOS.
// We might want to use fontMetrics numbers instead.
ho_rect.adjust(-1, 0, -1, -1);
painter.drawRect(ho_rect);
}
示例14: setWindowTitle
CVolumeProperties::CVolumeProperties(CVolume *volume)
{
setWindowTitle(tr("Volume Properties"));
tmpVolume = volume;
QVBoxLayout *vLayout = new QVBoxLayout(this);
nameLabel = new QLabel(tr("Name of volume"));
name = new QLineEdit();
name->setText(volume->getName());
vLayout->addWidget(nameLabel);
vLayout->addWidget(name);
QHBoxLayout *dLayout = new QHBoxLayout();
dimensionsBox = new QGroupBox(tr("Dimension of volume"));
dimensionsLabel = new QLabel(tr("%1 x %2 x %3").arg(volume->getWidth()).arg(volume->getHeight()).arg(volume->getDepth()));
dLayout->addWidget(dimensionsLabel);
dimensionsBox->setLayout(dLayout);
vLayout->addWidget(dimensionsBox);
QHBoxLayout *pLayout = new QHBoxLayout();
positionBox = new QGroupBox(tr("Position"));
x = new QLabel(tr("X:"));
y = new QLabel(tr("Y:"));
z = new QLabel(tr("Z:"));
xv = new QDoubleSpinBox();
xv->setMinimum(-1000);
xv->setMaximum(1000);
yv = new QDoubleSpinBox();
yv->setMinimum(-1000);
yv->setMaximum(1000);
zv = new QDoubleSpinBox();
zv->setMinimum(-1000);
zv->setMaximum(1000);
xv->setValue(volume->getPosition().getX());
yv->setValue(volume->getPosition().getY());
zv->setValue(volume->getPosition().getZ());
pLayout->addWidget(x);
pLayout->addWidget(xv);
pLayout->addWidget(y);
pLayout->addWidget(yv);
pLayout->addWidget(z);
pLayout->addWidget(zv);
positionBox->setLayout(pLayout);
vLayout->addWidget(positionBox);
QHBoxLayout *arLayout = new QHBoxLayout();
aspectRatioBox = new QGroupBox(tr("Aspect Ratio"));
xr = new QLabel(tr("X:"));
yr = new QLabel(tr("Y:"));
zr = new QLabel(tr("Z:"));
xvr = new QDoubleSpinBox();
xvr->setMinimum(-10);
xvr->setMaximum(10);
yvr = new QDoubleSpinBox();
yvr->setMinimum(-10);
yvr->setMaximum(10);
zvr = new QDoubleSpinBox();
zvr->setMinimum(-10);
zvr->setMaximum(10);
xvr->setValue(volume->getAspectRatio(VISc::dX));
yvr->setValue(volume->getAspectRatio(VISc::dY));
zvr->setValue(volume->getAspectRatio(VISc::dZ));
arLayout->addWidget(xr);
arLayout->addWidget(xvr);
arLayout->addWidget(yr);
arLayout->addWidget(yvr);
arLayout->addWidget(zr);
arLayout->addWidget(zvr);
aspectRatioBox->setLayout(arLayout);
vLayout->addWidget(aspectRatioBox);
QHBoxLayout *cLayout = new QHBoxLayout();
colorLabel = new QLabel(tr("Color:"));
colorShower = new QLineEdit();
colorShower->setEnabled(false);
QPalette palette( colorShower->palette() );
palette.setColor( QPalette::Base, volume->getColor() );
colorShower->setPalette(palette);
tmpColor = volume->getColor();
colorPicker = new QPushButton(tr("Color"));
connect(colorPicker, SIGNAL(clicked()), this, SLOT(colorPickerAction()));
cLayout->addWidget(colorLabel);
cLayout->addWidget(colorShower);
cLayout->addWidget(colorPicker);
vLayout->addLayout(cLayout);
//QHBoxLayout *iLayout = new QHBoxLayout();
//intensityLabel = new QLabel(tr("Intensity"));
//intensity = new QDoubleSpinBox();
//intensity->setMinimum(0.0);
//intensity->setMaximum(1.0);
//intensity->setValue(light->getIntensity());
//iLayout->addWidget(intensityLabel);
//iLayout->addWidget(intensity);
//intensity->setValue(light->getIntensity());
//.........这里部分代码省略.........
示例15: run
static int run(int index)
{
int i, prev = 0;
struct iodef *id, *lastidread = 0;
unsigned long u, t;
if (index >= niodefs)
return index;
/* state machine! */
for(i = index, id = &iodefs[i]; id->op; i++, id++){
switch(id->op){
case M:
if (verbose & vmsg) printk(BIOS_SPEW, "%ld: %s\n",
globalmicroseconds(), id->msg);
break;
case P:
palette();
break;
case R:
u = READ32(id->addr);
if (verbose & vio)
printk(BIOS_SPEW, "\texpect %08lx\n", id->data);
/* we're looking for something. */
if (lastidread->addr == id->addr){
/* they're going to be polling.
* just do it 1000 times
*/
for (t = 0; t < 1000 && id->data != u; t++){
u = READ32(id->addr);
}
if (verbose & vspin) printk(BIOS_SPEW,
"%s: # loops %ld got %08lx want %08lx\n",
regname(id->addr),
t, u, id->data);
}
lastidread = id;
break;
case W:
WRITE32(id->data, id->addr);
if (id->addr == PCH_PP_CONTROL){
if (verbose & vio)
printk(BIOS_SPEW, "PCH_PP_CONTROL\n");
switch(id->data & 0xf){
case 8: break;
case 7: break;
default: udelay(100000);
if (verbose & vio)
printk(BIOS_SPEW, "U %d\n", 100000);
}
}
break;
case V:
if (id->count < 8){
prev = verbose;
verbose = id->count;
} else {
verbose = prev;
}
printk(BIOS_SPEW, "Change verbosity to %d\n", verbose);
break;
case I:
printk(BIOS_SPEW, "run: return %d\n", i+1);
return i+1;
break;
default:
printk(BIOS_SPEW, "BAD TABLE, opcode %d @ %d\n", id->op, i);
return -1;
}
if (id->udelay)
udelay(id->udelay);
if (i < ARRAY_SIZE(times))
times[i] = globalmicroseconds();
}
printk(BIOS_SPEW, "run: return %d\n", i);
return i+1;
}