在用一些文本填充tableWidget时,我对每一行都使用了self.ui.tableWidget.resizeRowToContents
。
在这之后:self.ui.tableWidget.setSortingEnabled(1)
,排序按预期工作,但行不再根据内容调整大小,实际上它们保留了以前的高度。在
name name v name v
--------- --------- ---------
text2 text1line1 text1line1
--------- after sort is clicked: --------- expected: text1line2
text1line1 text1line3
text1line2 text2 ---------
text1line3 text2
--------- --------- ---------
我的想法是在单击标题中的排序时捕捉信号,并再次使用self.ui.tableWidget.resizeRowToContents
遍历所有行。
如何捕捉信号?
头对象上有可以连接到的信号:http://doc.qt.nokia.com/4.7-snapshot/qheaderview.html
也可以尝试在填充时为行设置大小调整模式:
^{pr2}$这种方法的缺点是,当设置为ResizeToContents时,用户对大小的控制被禁用。只要用户不打算/不需要手动调整大小-这是一个很好的方法。在
不需要为添加的每一行调用
resizeRowToContents
。在相反,在表被填充之后,调用^{} 槽,它将一次调整所有行的大小。在
然后,可以将同一个插槽连接到^{} 信号,这样每当对列排序时,都会调整行的大小:
相关问题 更多 >
编程相关推荐