• 14324阅读
  • 10回复

[讨论]请问如何改变QTableView的显示大小?(高度) [复制链接]

上一主题 下一主题
离线sjyzhxw
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-14

左边是一个QTableView,如何设置他的显示高度?
离线0xffffh

只看该作者 1楼 发表于: 2012-05-14
用Layout管理器吧
离线sjyzhxw
只看该作者 2楼 发表于: 2012-05-14
回 1楼(0xffffh) 的帖子
能详细吗
离线roywillow

只看该作者 3楼 发表于: 2012-05-14
回 2楼(sjyzhxw) 的帖子
使用Layout
至于详细内容,这个是Qt的最基本的一个功能,还是看文档和通过使用来学习吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线uidab

只看该作者 4楼 发表于: 2012-05-14
能做出这个,不会连搜一下help都不会吧.
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线avriler

只看该作者 5楼 发表于: 2012-05-14
回 楼主(sjyzhxw) 的帖子
用resize应该可以。
离线jdwx

只看该作者 6楼 发表于: 2012-05-14
不会用QLayout!
估计是从MFC那边移动过来的。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线sjyzhxw
只看该作者 7楼 发表于: 2012-05-15
既然来问自然是帮助查过了,resize什么的都试过了没用才来的。
离线passion_wu
只看该作者 8楼 发表于: 2012-05-15
model不是有个data函数么?这是我的方法:
QVariant HandCaseModel::data(const QModelIndex &index, int role) const
{
    if (!index.isValid())
        return QVariant();
    switch (role)
    {
    case Qt::TextAlignmentRole:
        return int(Qt::AlignVCenter);
    case Qt::BackgroundRole:
        return QColor(250, 250, 250);
    case Qt::DisplayRole:
    case Qt::EditRole:
        return m_list.at(index.column());
    case Qt::SizeHintRole:
        return QSize(80, 20);           //就是这里改变大小,还可以根据不同的index设置不同的值
    default:
        break;
    }
    return QVariant();
}

当你调用setModel或reset model的时候需要调用一下:
void QTableView::resizeColumnsToContents ()   //根据data函数设置的size调整列宽
void QTableView::resizeRowsToContents ()        //根据data函数设置的size调整行高
离线muqiujuan
只看该作者 9楼 发表于: 2012-05-15
回 楼主(sjyzhxw) 的帖子
如果不会布局的话,那就使用void    setGeometry ( int x, int y, int w, int h )函数吧
x,y表示起点坐标,相对于“查询结果”窗口
w,h表示你要设定的宽度和高度,可以和“查询结果”的大小差不多大
离线sjyzhxw
只看该作者 10楼 发表于: 2012-05-16
回 8楼(passion_wu) 的帖子
谢谢,我觉得你说的是比较靠谱的。
但是我是直接使用了QSqlQueryModel,后来才发现似乎都是要先继承一个model然后再自己实现的。。。那是不是出了重构就没办法了
快速回复
限100 字节
 
上一个 下一个