2011-04-28 34 views
0

我在单元格中使用QTableWidgetItems的子类QTableWidget来显示某些数据。在第一行中,我有一组数字在每个单元格中以新行分隔。我的问题是,当我增加字体大小/减少单元格大小时,一些行完全消失,尽管单元格绝对足以容纳它们。QTableWidgetItem多行消失

这通常出现在有一个2位数的数字以及其下的一些其他行,并且(可能)字体大小大于框宽度可以匹配时。我有elide模式设置为none来压制出现这种情况时出现的“三个点”。

this->setTextElideMode(Qt::ElideNone);

第一行是由

this->resizeRowToContents(0); this->setRowWidth(0, this->rowWidth(0) + 10);

足以使高调整。

但是,数字不断消失。此处显示的示例请注意字体大小更改和缺少的数字。

http://www.stud.fit.vutbr.cz/~xnavra23/TWIbug1.png

http://www.stud.fit.vutbr.cz/~xnavra23/TWIbug2.png

我开始是相当绝望这个...任何帮助,高度赞赏。

回答

0

只是为了调查这个问题,请尝试:该字符串正确创建

  1. 制作舒尔(2,5,10,3),而不是(10,3)
  2. 尝试字母而不是数字来让舒尔,他们显示
  3. 尝试使用3digits nuber与2digits并看看发生了什么
  4. 可能是解决这个通过使用01,02号码?
+0

嗨,1.它肯定得到正确创建,字体大小更改功能与内容无关(调试)。 2.我使用QString :: number,QStringList :: join,然后.setText来更改单元格的内容,我相信它确定。 3.问题仍然相同,当1行超过单元格宽度时,其他行将被忽略。 4.这使得问题更加严重(2位数以下的行数超过宽度消失)。感谢您的建议,虽然 – 2011-04-28 13:52:10

0

尝试resizeColumnsToContents()而不是setColumnWidth。如果这不起作用,请在resizeRowToContents(0)之前尝试拨打resizeColumnsToContents()
顺便说一下,是否有任何理由呼吁resizeRowToContents(0),而不是resizeRowsToContents()(注意不同的名称)?

+0

嗨,对不起混淆,我这样对待第一行和第一列 - 'this-> resizeColumnToContents(0); this-> resizeRowToContents(0); this-> setColumnWidth(0 ,this-> columnWidth(0)+ 10); this-> setRowHeight(0,this-> rowHeight(0)+ 10);'但只有第一行产生问题,因为在第一列单元格中没有多重在线文本。正如我之前提到的,cellwidget的高度没有问题,它绝对没问题。我认为它是QTableWidgetItem处理导致问题的文本的方式。 – 2011-04-28 14:24:51

+0

我说'resizeColumnsToContents',而不是'resizeColumnToContents'。尝试一下。 – TonyK 2011-04-28 15:07:21

+0

这不可能,我需要其他colunms有一个确切的宽度...这是我以前的问题http:// stackoverflow。com/questions/5781589/qtablewidgetitem-shrinking/5791690#5791690 – 2011-04-28 17:11:57