⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 krsqueezedtextlabel.cpp

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 CPP
字号:
#include "krsqueezedtextlabel.h"#include <kstringhandler.h>#include <kurldrag.h>#include <qtooltip.h>KrSqueezedTextLabel::KrSqueezedTextLabel(QWidget *parent, const char *name):  KSqueezedTextLabel(parent, name), acceptDrops( false ), _index(-1), _length(-1) {}KrSqueezedTextLabel::~KrSqueezedTextLabel() {}void KrSqueezedTextLabel::mousePressEvent(QMouseEvent *) {  emit clicked();  }void KrSqueezedTextLabel::enableDrops( bool flag ){  setAcceptDrops( acceptDrops = flag );}void KrSqueezedTextLabel::dropEvent(QDropEvent *e) {  emit dropped(e);}void KrSqueezedTextLabel::dragEnterEvent(QDragEnterEvent *e) {  if( acceptDrops )    e->accept( KURLDrag::canDecode( e ) );  else    KSqueezedTextLabel::dragEnterEvent( e );}void KrSqueezedTextLabel::squeezeTextToLabel(int index, int length) {	if (index==-1 || length==-1)		KSqueezedTextLabel::squeezeTextToLabel();	else {		QString sqtext=fullText;		QFontMetrics fm(fontMetrics());		int labelWidth = size().width();		int textWidth = fm.width(sqtext);		if (textWidth > labelWidth) {			int avgCharSize = textWidth / sqtext.length();			int numOfExtraChars = (textWidth-labelWidth)/avgCharSize;			int delta;						// remove as much as possible from the left, and then from the right			if (index>3) {				delta=QMIN(index, numOfExtraChars);				numOfExtraChars -= delta;				sqtext.replace(0, delta, "...");			}						if (numOfExtraChars>0 && ((int)sqtext.length() > length+3)) {				delta = QMIN(numOfExtraChars, (int)sqtext.length() - (length+3));				sqtext.replace(sqtext.length()-delta, delta, "...");			}			QLabel::setText(sqtext);			QToolTip::remove( this );			QToolTip::add( this, fullText );		} else {			QLabel::setText(fullText);			QToolTip::remove( this );			QToolTip::hide();		}	}}void KrSqueezedTextLabel::setText( const QString &text, int index, int length ) {	_index=index;	_length=length;	fullText = text;	squeezeTextToLabel(_index,_length);}#include "krsqueezedtextlabel.moc"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -