本文主要是介绍Qtableview item省略在左侧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 我们在设置tablewidgetItem文字的时候,有时候希望省略号在左侧,而默认的是在右侧,如何解决呢?
我们尝试设置
TabView->setTextElideMode(Qt::ElideLeft); 设置完后,发现不起作用。
这时候我们需要使用代理来实现 (两种)
第一种方法
strTemp就是原始文字。elidetext 是省略后的文字。
QFont font("Segoe UI",12);
QFontMetrics metrics(font);QString elidedText = metrics.elidedText(strTemp, Qt::ElideLeft, option.rect.width());
painter->drawText(option.rect,Qt::AlignCenter,elidedText); 这样就可以省略在左边了
第二种方法
QStyleOptionViewItem opt = option;
initStyleOption(&opt, index);
opt.displayAlignment = Qt::AlignCenter;
opt.textElideMode = Qt::ElideLeft;
QApplication::style()->drawItemText( painter, optionRect , opt.displayAlignment|opt.textElideMode, QApplication::palette(), true,elidedText );
这样也实现了,但是可能你会发现,为什么绘制的这行不高亮了,加上下面的代码就高亮了。
if (option.state & QStyle::State_Selected){painter->fillRect(option.rect, option.palette.highlight());}
这篇关于Qtableview item省略在左侧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!