📄 qplatinumstyle.cpp
字号:
a.translate( x1, y1 ); p->drawLineSegments( a ); }}/*! \reimp */QSizeQPlatinumStyle::exclusiveIndicatorSize() const{ return QSize(15,15);}/*! \reimp */void QPlatinumStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, bool /* sunken */, bool editable, bool /* enabled */, const QBrush *fill ){ QPen oldPen = p->pen(); p->fillRect(x+2, y+2, w-4, h-4,fill?*fill:g.brush( QColorGroup::Button )); // the bright side p->setPen(g.shadow()); p->drawLine(x, y, x+w-1, y); p->drawLine(x, y, x, y+h-1); p->setPen(g.light()); p->drawLine(x+1, y+1, x+w-2, y+1); p->drawLine(x+1, y+1, x+1, y+h-2); // the dark side! p->setPen(g.mid()); p->drawLine(x+2, y+h-2 ,x+w-2, y+h-2); p->drawLine(x+w-2, y+2, x+w-2, y+h-2); p->setPen(g.shadow()); p->drawLine(x+1, y+h-1,x+w-1, y+h-1); p->drawLine(x+w-1, y, x+w-1, y+h-1); // top left corner: p->setPen(g.background()); p->drawPoint(x, y); p->drawPoint(x+1, y); p->drawPoint(x, y+1); p->setPen(g.shadow()); p->drawPoint(x+1, y+1); p->setPen(white); p->drawPoint(x+3, y+3); // bottom left corner: p->setPen(g.background()); p->drawPoint(x, y+h-1); p->drawPoint(x+1, y+h-1); p->drawPoint(x, y+h-2); p->setPen(g.shadow()); p->drawPoint(x+1, y+h-2); // top right corner: p->setPen(g.background()); p->drawPoint(x+w-1, y); p->drawPoint(x+w-2, y); p->drawPoint(x+w-1, y+1); p->setPen(g.shadow()); p->drawPoint(x+w-2, y+1); // bottom right corner: p->setPen(g.background()); p->drawPoint(x+w-1, y+h-1); p->drawPoint(x+w-2, y+h-1); p->drawPoint(x+w-1, y+h-2); p->setPen(g.shadow()); p->drawPoint(x+w-2, y+h-2); p->setPen(g.dark()); p->drawPoint(x+w-3, y+h-3);// p->setPen(g.mid());// p->drawPoint(x+w-4, y+h-4);// drawButton(p, w-2-16,2,16,h-4, g, sunken ); // now the arrow button { int xx = x+w-20; int yy = y; int ww = 20; int hh = h; // the bright side p->setPen(g.mid()); p->drawLine(xx, yy+2, xx, yy+hh-3); p->setPen(g.button()); p->drawLine(xx+1, yy+1, xx+ww-2, yy+1); p->drawLine(xx+1, yy+1, xx+1, yy+hh-2); p->setPen(g.light()); p->drawLine(xx+2, yy+2, xx+2, yy+hh-2); p->drawLine(xx+2, yy+2, xx+ww-2, yy+2); // the dark side! p->setPen(g.mid()); p->drawLine(xx+3, yy+hh-3 ,xx+ww-3, yy+hh-3); p->drawLine(xx+ww-3, yy+3, xx+ww-3, yy+hh-3); p->setPen(g.dark()); p->drawLine(xx+2, yy+hh-2 ,xx+ww-2, yy+hh-2); p->drawLine(xx+ww-2, yy+2, xx+ww-2, yy+hh-2); p->setPen(g.shadow()); p->drawLine(xx+1, yy+hh-1,xx+ww-1, yy+hh-1); p->drawLine(xx+ww-1, yy, xx+ww-1, yy+hh-1); // top right corner: p->setPen(g.background()); p->drawPoint(xx+ww-1, yy); p->drawPoint(xx+ww-2, yy); p->drawPoint(xx+ww-1, yy+1); p->setPen(g.shadow()); p->drawPoint(xx+ww-2, yy+1); // bottom right corner: p->setPen(g.background()); p->drawPoint(xx+ww-1, yy+hh-1); p->drawPoint(xx+ww-2, yy+hh-1); p->drawPoint(xx+ww-1, yy+hh-2); p->setPen(g.shadow()); p->drawPoint(xx+ww-2, yy+hh-2); p->setPen(g.dark()); p->drawPoint(xx+ww-3, yy+hh-3); p->setPen(g.mid()); p->drawPoint(xx+ww-4, yy+hh-4); // and the arrows p->setPen( g.foreground() ); QPointArray a; a.setPoints( 7, -3,1, 3,1, -2,0, 2,0, -1,-1, 1,-1, 0,-2 ); a.translate( xx+ww/2, yy+hh/2-3 ); p->drawLineSegments( a, 0, 3 ); // draw arrow p->drawPoint( a[6] ); a.setPoints( 7, -3,-1, 3,-1, -2,0, 2,0, -1,1, 1,1, 0,2 ); a.translate( xx+ww/2, yy+hh/2+2 ); p->drawLineSegments( a, 0, 3 ); // draw arrow p->drawPoint( a[6] ); } if (editable) { QRect r = comboButtonRect(x, y, w, h); r.setRect( r.left()-1, r.top()-1, r.width()+2, r.height()+2 ); qDrawShadePanel( p, r, g, TRUE, 2, 0 ); } p->setPen( oldPen );}/*! \reimp */QRect QPlatinumStyle::comboButtonRect( int x, int y, int w, int h){ return QRect(x+3, y+3, w-6-16, h-6);}/*! \reimp */QRect QPlatinumStyle::comboButtonFocusRect( int x, int y, int w, int h){ return QRect(x+4, y+4, w-8-16, h-8);}/*! \reimp */int QPlatinumStyle::sliderLength() const{ return 17;}/*! \reimp */void QPlatinumStyle::drawSlider( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, Orientation orient , bool /* tickAbove */, bool /*tickBelow*/ ){ const QColor c0 = g.shadow(); const QColor c1 = g.dark(); // const QColor c2 = g.button(); const QColor c3 = g.light(); int x1 = x; int x2 = x+w-1; int y1 = y; int y2 = y+h-1; int mx = w/2; int my = h/2; if ( orient == Vertical ) { // Background QBrush oldBrush = p->brush(); p->setBrush( g.brush( QColorGroup::Button ) ); p->setPen( NoPen ); QPointArray a(6); a.setPoint( 0, x1+1, y1+1 ); a.setPoint( 1, x2-my+2, y1+1 ); a.setPoint( 2, x2-1, y1+my-1 ); a.setPoint( 3, x2-1, y2-my+1 ); a.setPoint( 4, x2-my+2, y2-1 ); a.setPoint( 5, x1+1, y2-1 ); p->drawPolygon( a ); p->setBrush( oldBrush ); // shadow border p->setPen( c0 ); p->drawLine(x1, y1+1, x1,y2-1); p->drawLine( x2-my+2, y1, x2, y1+my-2); p->drawLine( x2-my+2, y2, x2, y1+my+2); p->drawLine(x2, y1+my-2, x2, y1+my+2); p->drawLine(x1+1, y1, x2-my+2, y1); p->drawLine(x1+1, y2, x2-my+2, y2); // light shadow p->setPen(c3); p->drawLine(x1+1, y1+2, x1+1,y2-2); p->drawLine(x1+1, y1+1, x2-my+2, y1+1); p->drawLine( x2-my+2, y1+1, x2-1, y1+my-2); // dark shadow p->setPen(c1); p->drawLine(x2-1, y1+my-2, x2-1, y1+my+2); p->drawLine( x2-my+2, y2-1, x2-1, y1+my+2); p->drawLine(x1+1, y2-1, x2-my+2, y2-1); drawRiffles(p, x, y+2, w-3, h-4, g, TRUE); } else { // Horizontal // Background QBrush oldBrush = p->brush(); p->setBrush( g.brush( QColorGroup::Button ) ); p->setPen( NoPen ); QPointArray a(6); a.setPoint( 0, x2-1, y1+1 ); a.setPoint( 1, x2-1, y2-mx+2 ); a.setPoint( 2, x2-mx+1, y2-1 ); a.setPoint( 3, x1+mx-1, y2-1 ); a.setPoint( 4, x1+1, y2-mx+2 ); a.setPoint( 5, x1+1, y1+1 ); p->drawPolygon( a ); p->setBrush( oldBrush ); // shadow border p->setPen( c0 ); p->drawLine(x1+1,y1,x2-1,y1); p->drawLine(x1, y2-mx+2, x1+mx-2, y2); p->drawLine(x2, y2-mx+2, x1+mx+2, y2); p->drawLine(x1+mx-2, y2, x1+mx+2, y2); p->drawLine(x1, y1+1, x1, y2-mx+2); p->drawLine(x2, y1+1, x2, y2-mx+2); // light shadow p->setPen(c3); p->drawLine(x1+1, y1+1,x2-1, y1+1); p->drawLine(x1+1, y1+1, x1+1, y2-mx+2); // dark shadow p->setPen(c1); p->drawLine(x2-1, y1+1, x2-1, y2-mx+2); p->drawLine(x1+1, y2-mx+2, x1+mx-2, y2-1); p->drawLine(x2-1, y2-mx+2, x1+mx+2, y2-1); p->drawLine(x1+mx-2, y2-1, x1+mx+2, y2-1); drawRiffles(p, x+2, y, w-4, h-5, g, FALSE); }}/*! \reimp */void QPlatinumStyle::drawSliderMask( QPainter *p, int x, int y, int w, int h, Orientation orient , bool /* tickAbove */, bool /*tickBelow*/ ){ int x1 = x; int x2 = x+w-1; int y1 = y; int y2 = y+h-1; int mx = w/2; int my = h/2; if ( orient == Vertical ) { // Background p->setBrush( color1 ); p->setPen( NoPen ); QPointArray a(6); a.setPoint( 0, x1+1, y1+1 ); a.setPoint( 1, x2-my+2, y1+1 ); a.setPoint( 2, x2-1, y1+my-1 ); a.setPoint( 3, x2-1, y2-my+1 ); a.setPoint( 4, x2-my+2, y2-1 ); a.setPoint( 5, x1+1, y2-1 ); p->drawPolygon( a ); p->setPen( color1 ); // shadow border p->drawLine(x1, y1+1, x1,y2-1); p->drawLine( x2-my+2, y1, x2, y1+my-2); p->drawLine( x2-my+2, y2, x2, y1+my+2); p->drawLine(x2, y1+my-2, x2, y1+my+2); p->drawLine(x1+1, y1, x2-my+2, y1); p->drawLine(x1+1, y2, x2-my+2, y2); // light shadow p->drawLine(x1+1, y1+2, x1+1,y2-2); p->drawLine(x1+1, y1+1, x2-my+2, y1+1); p->drawLine( x2-my+2, y1+1, x2-1, y1+my-2); // dark shadow p->drawLine(x2-1, y1+my-2, x2-1, y1+my+2); p->drawLine( x2-my+2, y2-1, x2-1, y1+my+2); p->drawLine(x1+1, y2-1, x2-my+2, y2-1); } else { // Horizontal // Background p->setBrush( color1 ); p->setPen( NoPen ); QPointArray a(6); a.setPoint( 0, x2-1, y1+1 ); a.setPoint( 1, x2-1, y2-mx+2 ); a.setPoint( 2, x2-mx+1, y2-1 ); a.setPoint( 3, x1+mx-1, y2-1 ); a.setPoint( 4, x1+1, y2-mx+2 ); a.setPoint( 5, x1+1, y1+1 ); p->drawPolygon( a ); p->setPen( color1 ); // shadow border p->drawLine(x1+1,y1,x2-1,y1); p->drawLine(x1, y2-mx+2, x1+mx-2, y2); p->drawLine(x2, y2-mx+2, x1+mx+2, y2); p->drawLine(x1+mx-2, y2, x1+mx+2, y2); p->drawLine(x1, y1+1, x1, y2-mx+2); p->drawLine(x2, y1+1, x2, y2-mx+2); // light shadow p->drawLine(x1+1, y1+1,x2-1, y1+1); p->drawLine(x1+1, y1+1, x1+1, y2-mx+2); // dark shadow p->drawLine(x2-1, y1+1, x2-1, y2-mx+2); p->drawLine(x1+1, y2-mx+2, x1+mx-2, y2-1); p->drawLine(x2-1, y2-mx+2, x1+mx+2, y2-1); p->drawLine(x1+mx-2, y2-1, x1+mx+2, y2-1); }}/*! \reimp */void QPlatinumStyle::drawSliderGroove( QPainter *p, int x, int y, int w, int h, const QColorGroup& g, QCOORD c, Orientation orient ){ p->fillRect(x, y, w, h, g.brush( QColorGroup::Background )); if ( orient == Horizontal ) { y = y+c-3; h = 7; } else { x = x+c-3; w = 7; } p->fillRect(x, y, w, h, g.brush( QColorGroup::Dark )); // the dark side p->setPen(g.dark()); p->drawLine(x, y, x+w-1, y); p->drawLine(x, y, x, y+h-1); p->setPen(g.shadow()); p->drawLine(x+1, y+1, x+w-2, y+1); p->drawLine(x+1, y+1, x+1, y+h-2); // the bright side! p->setPen(g.shadow()); p->drawLine(x+1, y+h-2 ,x+w-2, y+h-2); p->drawLine(x+w-2, y+1, x+w-2, y+h-2); p->setPen(g.light()); p->drawLine(x, y+h-1,x+w-1, y+h-1); p->drawLine(x+w-1, y, x+w-1, y+h-1); // top left corner: p->setPen(g.background()); p->drawPoint(x, y); p->drawPoint(x+1, y); p->drawPoint(x, y+1); p->setPen(g.shadow()); p->drawPoint(x+1, y+1); // bottom left corner: p->setPen(g.background()); p->drawPoint(x, y+h-1); p->drawPoint(x+1, y+h-1); p->drawPoint(x, y+h-2); p->setPen(g.light()); p->drawPoint(x+1, y+h-2); // top right corner: p->setPen(g.background()); p->drawPoint(x+w-1, y); p->drawPoint(x+w-2, y); p->drawPoint(x+w-1, y+1); p->setPen(g.dark()); p->drawPoint(x+w-2, y+1); // bottom right corner: p->setPen(g.background()); p->drawPoint(x+w-1, y+h-1); p->drawPoint(x+w-2, y+h-1); p->drawPoint(x+w-1, y+h-2); p->setPen(g.light()); p->drawPoint(x+w-2, y+h-2); p->setPen(g.dark()); p->drawPoint(x+w-3, y+h-3);}/*! Reimplementation from QWindowsStyle to disable the Windows typical jump back when dragging controls. \sa QStyle */int QPlatinumStyle::maximumSliderDragDistance() const{ return -1;}/*! \reimp*/void QPlatinumStyle::polishPopupMenu( QPopupMenu* p){ QWindowsStyle::polishPopupMenu( p );}/*! \reimp*/void QPlatinumStyle::drawCheckMark( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, bool act, bool dis ){ QWindowsStyle::drawCheckMark( p, x, y, w, h, g, act, dis );}/*! \reimp*/int QPlatinumStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& fm ){ return QWindowsStyle::extraPopupMenuItemWidth( checkable, maxpmw, mi, fm );}/*! \reimp*/int QPlatinumStyle::popupMenuItemHeight( bool checkable, QMenuItem* mi, const QFontMetrics& fm ){ return QWindowsStyle::popupMenuItemHeight( checkable, mi, fm );}/*! \reimp*/void QPlatinumStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, const QPalette& pal, bool act, bool enabled, int x, int y, int w, int h){ QWindowsStyle::drawPopupMenuItem( p, checkable, maxpmw, tab, mi, pal, act, enabled, x, y, w, h);}/*!\reimp */void QPlatinumStyle::getButtonShift( int &x, int &y){ x = 0; y = 0;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -