首页| 论坛| 消息

标题:我用错了吗?setSectionResizeMode,无法自适应内容
作者:九重水
日期:2017-02-08 11:45
内容:

我有一个表:stock,3000多个(没错,就是A股的数量);
用QTableView显示。(很多个QTableView被装在一个QStackedWidget里面)
情况一:我没有使用setStyleSheet设置外观的时候,竖直方面的表头它是可以自适应内容的。(这时没有使用setSectionResizeMode)。
现在的情况是,我使用:
ui->stackedWidget->setStyleSheet("QHeaderView::section, QTableCornerButton::section{background-image: url(:/images/stockbg.png); font: 12pt;}"
"QTableView{font: 12pt ;}"
);来设置QStackedWidget里面的QTableView和QHeadView的背景和字体。
发现竖直方向的表头已经装不下内容(显示股票的数量)。

于是我用了setSectionResizeMode。
ui->allStockTableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents );
结果发现还是不能自适应内容拉伸竖直方向的表头。
求过来人解答,谢谢!
完整的代码如下:
ui->stackedWidget->setStyleSheet("QHeaderView::section, QTableCornerButton::section{background-image: url(:/images/stockbg.png); font: 12pt;}"
"QTableView{font: 12pt ;}"
);
&n ..


#1 [九重水 02-08 11:50]
我知道使用setMinimumWidth或类似函数可以让竖直的表头看起来更适应内容。
但是用了setStyleSheet设置字体和背景之后无法自适应内容(setSectionResizeMode函数),
我很不解。
求过来人解答,谢谢。
ui->allStockTableView->verticalHeader()->setMinimumWidth(ui->allStockTableView->horizontalHeader()->fontInfo().pixelSize() *
(QString::number(allStockTableModel->rowCount()).size())
+ 2);
#2 [kaon 02-08 12:15]
把setSectionResizeMode放到最前面去?
#3 回 kaon 的帖子 [九重水 02-08 13:49]
kaon:把setSectionResizeMode放到最前面去? (2017-02-08 12:15) 
也是不可以。我试过了。
这个问题比较奇怪,这个问题是在setStyleSheet之后才产生的。
我猜是不是跟这个也有关联。
现在我直接用setMinimumWidth函数设置竖直方向表头的宽度,虽然不灵活,但很方便直观。
这个问题先记一下再说。以后有时间再研究。
也希望有过经验的同学指点一二。

回复 发表
主题 版块