找回密码
 立即注册
收起左侧

关于表格tableView的问题,各位大神来看看,十豆子。

8
回复
7381
查看
[复制链接]
累计签到:24 天
连续签到:1 天
来源: 2017-11-13 16:20:04 显示全部楼层 |阅读模式
10Qter豆
问题归类:表格布局界面
问题描述: 1,QT里面自己自定义了一个mytableview继承自系统的tableview,tableview自己默认得有滚动条,我设置了垂直表头不显示view->verticalHeader()->hide();
       当页面显示不全文本内容时如图
2,当把某一列拖得很宽,超过页面宽度时,把滚动条移到最右边,拖动水平表头的最后一列会出现白色的空白(主要就是这个问题



3,当进入mytableview里面设置里滚动条自适应,代码如下view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);  //滚动条自适应宽度(按一个相素)
      此时 按照条件2 的做法,已经很好的屏蔽了表格白色

4,此时会出现一种情况,就是表格的gridline-color: #00ff00;\属性不能包括表格最最左边边框如图,(左边绿色边框已经没有了


我最终想得到的效果是:表格右边拖动不留白+表格左边绿色边框存在




希望各位老哥能给小弟一个解答,困扰很多天了,谢谢了。如果有什么解释不清楚的欢迎回帖讨论。

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:49 天
连续签到:1 天
2017-11-14 09:51:29 显示全部楼层
是要表格自动填充么,试试
mytableview->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
放在构造里
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-11-14 11:24:36 显示全部楼层
静夜幕空 发表于 2017-11-14 09:51
是要表格自动填充么,试试
mytableview->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
放在 ...

这个属性是表格自动补全宽度的,但是留白的宽度实际是在表格之外的,只是滚动条没有及时的回来,可以通过设置滚动条自适应,就可以避免留白,但是 最最最重要的左边外边框确找不到了
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-11-14 11:26:24 显示全部楼层
各位小伙伴知道就说一下呗,谁能告诉我,留下球球或者v信,十块钱红包,请大神喝瓶水。
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-11-14 11:29:02 显示全部楼层
    QTableView *view = new QTableView;
    view->setModel(model);
    view->setItemDelegate(new QSqlRelationalDelegate(view));
//! [4]
    view->setWindowTitle(title);
    view->verticalHeader()->hide();
   // view->horizontalHeader()->setResizeMode();
   // view->horizontalHeader()->sectionResizeMode(QHeaderView::Stretch)
    view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);  //滚动条自适应宽度(按一个相素)
    view->setStyleSheet("QTableView{\
                  gridline-color: #00ff00;\
                  }\
                 }"
                );
    return view;

tableview 代码基本没有这么设置。
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-11-15 16:22:52 显示全部楼层
附上一段 源码 void QAbstractItemView::setHorizontalScrollMode(ScrollMode mode)
{
    Q_D(QAbstractItemView);
    d->horizontalScrollModeSet = true;
    if (mode == d->horizontalScrollMode)
        return;
    d->horizontalScrollMode = mode;
    if (mode == ScrollPerItem)
        horizontalScrollBar()->d_func()->itemviewChangeSingleStep(1); // setSingleStep(-1) => step with 1
    else
        horizontalScrollBar()->setSingleStep(-1); // Ensure that the view can update single step
    updateGeometries(); // update the scroll bars
}

就这这段源码使得表格本来的左边框不见了,老们有头绪么
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-11-17 13:00:22 显示全部楼层
有没有老哥知道呢,或者有什么不清楚的地方,都可以说的
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-11-21 11:22:50 显示全部楼层
没有人遇到这个问题么,我觉得应该可以是QTableview paint函数里面的东西
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2018-1-2 15:52:07 显示全部楼层
问题还没有解决,有人么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了