Qt QLineEdit 根据拉伸宽度自动加省略点
来源:互联网 发布:灭罪师类似的网络剧 编辑:程序博客网 时间:2024/06/10 14:55
#include <QLineEdit>
class ElidedQLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit ElidedQLineEdit(QWidget *parent=0);
explicit ElidedQLineEdit(const QString &text, QWidget *parent=0);
void setText(const QString &text);
void setFullText(const QString &text);
void setTextLimitShrink(const QString &text, int width);
void setTextLimitExpand(const QString &text);
QString fullText() const;
protected:
void paintEvent(QPaintEvent *);
private:
void elideText();
private:
QString m_fullText;
};
ElidedQLineEdit::ElidedQLineEdit(QWidget *parent)
: QLineEdit(parent)
{
this->setMinimumWidth(0);
}
ElidedQLineEdit::ElidedQLineEdit(const QString &text, QWidget *parent)
: QLineEdit(text, parent), m_fullText(text)
{
this->setMinimumWidth(0);
}
void ElidedQLineEdit::setText(const QString &text)
{
setFullText(text);
}
void ElidedQLineEdit::setFullText(const QString &text)
{
m_fullText = text;
update();
}
void ElidedQLineEdit::setTextLimitShrink(const QString &text, int width)
{
this->setMinimumWidth(qMin(this->fontMetrics().width(text), width));
setFullText(text);
}
void ElidedQLineEdit::setTextLimitExpand(const QString &text)
{
int textWidth = this->fontMetrics().width(text);
this->setMaximumWidth(textWidth);
setFullText(text);
}
QString ElidedQLineEdit::fullText() const
{
return m_fullText;
}
void ElidedQLineEdit::paintEvent(QPaintEvent *event)
{
QLineEdit::paintEvent(event);
elideText();
}
void ElidedQLineEdit::elideText()
{
QFontMetrics fm = this->fontMetrics();
int dif = fm.width(m_fullText) - this->width();
if (dif > 0)
{
QString showText = fm.elidedText(m_fullText, Qt::ElideRight, this->width());
QLineEdit::setText(showText);
} else
{
QLineEdit::setText(m_fullText);
}
}
http://blog.csdn.net/tujiaw/article/details/44983201 实现了QLabel的子类,使其根据宽度自动加省略点和ToolTip。 但是发现当开始显示字符串的宽度小于QLabel控件的宽度时字符串会正常显示,但把QLabel宽度缩小至小于QLabel宽度后,还是会显示完整的字符串,没有截断字符串并加省略点
实现QLineEdit 子类会根据宽度自动加省略点 就不会出现上面的问题
- Qt QLineEdit 根据拉伸宽度自动加省略点
- QLabel根据拉伸宽度自动加省略点和ToolTip
- 一行文字超出宽度自动省略样式
- android 图片宽度填满屏幕宽度,图片高度根据图片的比例自动匹配,这样就不会拉伸图片
- QT--------QLineEdit
- Qt::QLineEdit
- 单行显示的UILabel根据文字内容自动调整宽度,文字下方加下划线
- 根据宽高自动拉伸ImageView
- div超过一定的高度和宽度自动省略
- [转]Qt:自动完成的QLineEdit(非使用QCompleter版)
- Qt:自动完成的QLineEdit(非使用QCompleter版)
- DIV背景图片随DIV高度宽度变化而自动拉伸
- android 使用TableLayout 实现布局自动拉伸宽度
- table 设置自动宽度后 td 的固定宽度 在 谷歌浏览器自动拉伸
- jtable 根据内容自动调整表格宽度
- tabel根据设置的宽度自动换行
- js根据手机屏幕宽度自动设置字体大小
- 根据屏幕拉伸自动调整iframe 的高度
- cocodata有一个版本迭代
- 【bzoj3790】【神奇项链】【manacher+dp+树状数组】
- theano提示:g++ not detected的解决办法
- Java LinkedList特有方法
- 数据库中事务的使用
- Qt QLineEdit 根据拉伸宽度自动加省略点
- ScrollView嵌套ListView高度计算
- ArrayList
- 轻松搞定左外连接、右外连接、内连接、全连接、交叉连接
- matlab数值积分技巧之将符号表达式转化为函数句柄
- 嵌入式linux:linux tee 命令详解
- bzoj1305 [CQOI2009]dance跳舞
- Android系统--视图绘制 (View Render)
- 1999年世界卫生组织/国际高血压联盟关于高血压治疗指南