如何在调整pyqt表格视图的大小时剪切列单元格的左侧

问题描述:

在PyQt(和普通的qt)的tableview或tablewidget中,如果调整不包含它们的列单元格的大小,单元格值的右侧将会被裁剪(并用椭圆替换...),而不管单元值是左对齐还是右对齐。如何在调整pyqt表格视图的大小时剪切列单元格的左侧

的影响如下:

The long and winding road. => The long and windi... 

是否有可能迫使该表以调整细胞,而裁剪单元格的值的左侧,而不是?

我想要的效果如下:

The long and winding road. => ...ng and winding road. 

我想这个,这样,如果我右对齐文本行,然后调整单元格,我想总能看到在最后会发生什么的线。

任何帮助,将不胜感激。

您可以使用setTextElideMode来设置“...”的放置位置。在你的情况下(使用C++):

ui->tableWidget->setTextElideMode(Qt::ElideLeft); 

请注意elide模式影响所有列。

+0

这几乎是完美的。但是,是否有办法在单个列上获得相同的elide模式效果? – Lozzer 2013-04-07 09:46:27

+0

我不认为这很容易。您可能需要制作自己的[委托](http://qt-project.org/doc/qt-4.8/model-view-programming.html#delegate-classes),它执行文本绘制。 – 2013-04-07 09:53:22

+0

谢谢。我实际上已经在做代理绘图了。但是,我正在努力获得elide效应。是否涉及计算单元格的宽度,然后在每一行上切割文本?这在处理时间上似乎很昂贵。 – Lozzer 2013-04-07 10:25:10