QTabelView根据一行记录中的内容自动调整列宽度

soulfy 2013-11-11 03:50:17
void CustomTwWidget::initCustomTwWidget(const QStringList headers)
{
m_model = new QStandardItemModel;
QFont font;
font.setFamily("Tahoma");
font.setPointSize(10);
this->horizontalHeader()->setFont(font);

QSizePolicy sizePolicy(QSizePolicy::Preferred,QSizePolicy::MinimumExpanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(2);
sizePolicy.setHeightForWidth(this->sizePolicy().hasHeightForWidth());
this->setSizePolicy(sizePolicy);

m_model->setHorizontalHeaderLabels(headers);
this->setModel(m_model);

//this->resizeColumnToContents(3);

}

我从QTableView继承出来后主要做了如上设置,运行后的效果如下
怎么能让第三列显示完全呢?
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
soulfy 2013-11-12
  • 打赏
  • 举报
回复
引用 5 楼 LazyDreamHunter 的回复:
还有一种方法,改变默认的deletegate,看我的最近的一篇博客。
我参照着试下
RabinSong 2013-11-12
  • 打赏
  • 举报
回复
还有一种方法,改变默认的deletegate,看我的最近的一篇博客。
soulfy 2013-11-12
  • 打赏
  • 举报
回复
引用 3 楼 LazyDreamHunter 的回复:
你这样处理,对于行数很多的时候,很耗时的,Qt5,我想应该有类似的函数,
嗯,确实,但是我试过几个常用的函数,都不是想要的效果。。
RabinSong 2013-11-11
  • 打赏
  • 举报
回复
你这样处理,对于行数很多的时候,很耗时的,Qt5,我想应该有类似的函数,
soulfy 2013-11-11
  • 打赏
  • 举报
回复
引用 1 楼 LazyDreamHunter 的回复:
horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); 重载scrollContentsBy void CResultTbl::scrollContentsBy(int dx, int dy) { QTableView::scrollContentsBy(dx, dy); horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); }
QT5里貌似没有horizontalHeader()->setResizeMode()方法了,我用下面的方式解决了,每次写内容做下判断调成列宽,比较笨的方式,呵呵.
if(columnWidth(i)<items.at(i).size()*font().pointSize())
        {
            colwith = items.at(i).size()*font().pointSize();
            this->setColumnWidth(i,colwith);
        }
RabinSong 2013-11-11
  • 打赏
  • 举报
回复
horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); 重载scrollContentsBy void CResultTbl::scrollContentsBy(int dx, int dy) { QTableView::scrollContentsBy(dx, dy); horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); }

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧