Changeset 10943
- Timestamp:
- Jul 5, 2010, 6:29:40 PM (13 years ago)
- Location:
- trunk/qt
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/qt/squeezelabel.cc
r10462 r10943 40 40 ****************************************************************************/ 41 41 42 #include <QPainter> 43 #include <QResizeEvent> 44 #include <QStyle> 45 #include <QStyleOption> 46 42 47 #include "squeezelabel.h" 43 48 44 void 45 SqueezeLabel::init() 49 void SqueezeLabel::init() 46 50 { 47 setTextInteractionFlags( Qt::TextSelectableByMouse);51 setTextInteractionFlags(Qt::TextSelectableByMouse); 48 52 } 49 53 50 SqueezeLabel::SqueezeLabel(const QString& text, QWidget *parent) 54 SqueezeLabel::SqueezeLabel(const QString& text, QWidget *parent): QLabel(text, parent) 51 55 { 52 56 init(); … … 58 62 } 59 63 60 void SqueezeLabel::paintEvent(QPaintEvent *event)64 void SqueezeLabel::paintEvent(QPaintEvent* paintEvent) 61 65 { 66 QPainter painter(this); 62 67 QFontMetrics fm = fontMetrics(); 63 if (fm.width(text()) > contentsRect().width()) { 64 QString elided = fm.elidedText(text(), Qt::ElideMiddle, width()); 65 QString oldText = text(); 66 setText(elided); 67 QLabel::paintEvent(event); 68 setText(oldText); 69 } else { 70 QLabel::paintEvent(event); 71 } 68 QStyleOption opt; 69 opt.initFrom(this); 70 const QString elidedText = fm.elidedText( text(), Qt::ElideMiddle, width()); 71 style()->drawItemText(&painter, contentsRect(), alignment(), opt.palette, isEnabled(), elidedText, foregroundRole()); 72 72 } 73 -
trunk/qt/squeezelabel.h
r10462 r10943 55 55 protected: 56 56 void init(); 57 void paintEvent(QPaintEvent *event); 58 57 void paintEvent(QPaintEvent* paintEvent); 59 58 }; 60 59
Note: See TracChangeset
for help on using the changeset viewer.