标题:如何让QTableWidget的列表头自动适应宽度?
作者:tancu
日期:2008-12-17 11:06
内容:
请看上面的的列表头,使用了QTableWidget,如何让右边的空列消失,并且当我调整列的宽度时(包括运行时删除一列),列表头照样能适应宽度的改变并且不会出空列?对这个问题我查了很多资料,但都搞不定,请大家帮帮忙,谢谢!
#1 [nmiirq 12-17 11:27]
#include
#include
#include
class MyHeaderView:public QHeaderView
{
public:
MyHeaderView(Qt::Orientation orientation, QWidget* parent=0):QHeaderView(orientation, parent)
{
setStretchLastSection ( true);
}
protected:
void paintSection ( QPainter * painter, const QRect & rect, int logicalIndex ) const
{
painter->save();
QHeaderView::paintSection(painter, rect, logicalIndex);
painter->restore();
painter->setPen(QColor(Qt::green));
painter->drawEllipse(rect);
}
QSize sizeHint () const
{
return QSize(200,100);
}
};
int main (int argc, char **argv)
{
QApplication app (argc, argv);
MyHeaderView* header=new MyHeaderView(Qt::Horizontal);
QTreeView view;
QDirModel model;
view.setModel(&model);
view.setHeader(header);
view.show();
return app.exec ();
}
#2 [nmiirq 12-17 11:28]
试下,这个是从别人给的示例改的,当然用的不是QTableWidget,但应该也是适用的,你先试试吧!
#3 [tancu 12-17 11:39]
试了,这个例子的表头能自动适应,可是这个例子是不是专门设计了一个表头?而QTableWidget已经有表头了,我想是不是有一个属性可以设置,或者说,是不是要专门写一个函数。我是在QT设计师里面做的。。。。
#4 [lazybone 12-17 11:50]
我是自己控制的 还有其他方法么
#5 [tancu 12-17 11:56]
请问楼上的朋友,能否把控制代码共享一起?多谢!