QTableWidget和 QTableView翻页效果(准确计算Scroll,然后使用setSliderPosition函数)
来源:互联网 发布:日本经营管理签证知乎 编辑:程序博客网 时间:2024/06/05 05:54
以QTableView举例,QTableWidget使用相同
int CQTTableViewPageSwitch::pageCount(QTableView *p)//QTableView 总页数
{
if(p == NULL) return -1;
int rowCount = p->model()->rowCount();
int rowHeight = p->rowHeight(0);
int tableViewHeight = p->height();
int rowCountPerPage = tableViewHeight/rowHeight-1;//每页显示行数
int ret = rowCount/rowCountPerPage;
int tem = rowCount%rowCountPerPage;
if (tem != 0) ret++;
return ret;
}
BOOL CQTTableViewPageSwitch::pageTo(QTableView *p, int pageNO)//翻到指定页
{
if(p == NULL) return false;
int maxPage = pageCount(p);
if(pageNO > maxPage) return false;
int rowCount = p->model()->rowCount();
int rowHeight = p->rowHeight(0);
int tableViewHeight = p->height();
int rowCountPerPage = tableViewHeight/rowHeight-1;//每页显示行数
int canNotViewCount = rowCount-rowCountPerPage;//看不见的行数
if(canNotViewCount == 0) return false;
int maxValue = p->verticalScrollBar()->maximum();// 当前SCROLLER最大显示值
if(maxValue == 0) return false;
int pageValue = (maxValue*rowCountPerPage)/canNotViewCount;
p->verticalScrollBar()->setSliderPosition(pageValue*(pageNO-1));
}
BOOL CQTTableViewPageSwitch::pageUp(QTableView *p,BOOL isLoop)//上翻
{
if(p == NULL) return false;
int rowCount = p->model()->rowCount();
int rowHeight = p->rowHeight(0);
int tableViewHeight = p->height();
int rowCountPerPage = tableViewHeight/rowHeight-1;//每页显示行数
int canNotViewCount = rowCount-rowCountPerPage;//看不见的行数
if(canNotViewCount == 0) return false;
int maxValue = p->verticalScrollBar()->maximum();// 当前SCROLLER最大显示值
if(maxValue == 0) return false;
int pageValue = (maxValue*rowCountPerPage)/canNotViewCount;
int nCurScroller = p->verticalScrollBar()->value();//获得当前scroller值
if(nCurScroller>0)
p->verticalScrollBar()->setSliderPosition(nCurScroller-pageValue);
else
{
if(isLoop == TRUE)
p->verticalScrollBar()->setSliderPosition(maxValue);
}
}
BOOL CQTTableViewPageSwitch::pageDown(QTableView *p,BOOL isLoop)//下翻
{
if(p == NULL) return false;
int rowCount = p->model()->rowCount();
int rowHeight = p->rowHeight(0);
int tableViewHeight = p->height();
int rowCountPerPage = tableViewHeight/rowHeight-1;//每页显示行数
int canNotViewCount = rowCount-rowCountPerPage;//看不见的行数
if(canNotViewCount == 0)
return false;
int maxValue = p->verticalScrollBar()->maximum();// 当前SCROLLER最大显示值
if(maxValue == 0)
return false;
int pageValue = (maxValue*rowCountPerPage)/canNotViewCount;
int nCurScroller = p->verticalScrollBar()->value();//获得当前scroller值
if(nCurScroller<maxValue)
p->verticalScrollBar()->setSliderPosition(nCurScroller+pageValue);
else
{
if(isLoop == TRUE)
p->verticalScrollBar()->setSliderPosition(0);
}
}
BOOL CQTTableViewPageSwitch::pageHome(QTableView *p)//首页
{
if(p == NULL) return false;
int maxValue = p->verticalScrollBar()->maximum(); // 当前SCROLLER最大显示值
if(maxValue == 0) return false;
p->verticalScrollBar()->setSliderPosition(0);
}
BOOL CQTTableViewPageSwitch::pageEnd(QTableView *p)//末页
{
if(p == NULL) return false;
int maxValue = p->verticalScrollBar()->maximum(); // 当前SCROLLER最大显示值
if(maxValue == 0) return false;
p->verticalScrollBar()->setSliderPosition(maxValue);
}
http://blog.csdn.net/liuguangzhou123/article/details/8109089
0 0
- QTableWidget和 QTableView翻页效果(准确计算Scroll,然后使用setSliderPosition函数)
- QTableWidget和 QTableView翻页效果
- QTableView和QTableWidget翻页功能实现
- QTableView和QTableWidget翻页功能实现
- QTableView和QTableWidget翻页功能实现---Qt学习笔记5
- qtableview和qtablewidget区别
- Qt QTableWidget 和 QTableView
- QTableWidget和QTableView
- QTableWidget和QTableView的区别
- QTableWidget,QTableView分页(2)——使用分页栏
- QTableWidget&&QTableView
- Qtablewidget / Qtableview
- QTableView与QTableWidget高阶使用积累
- QTableView与QTableWidget高阶使用积累
- (?)QTableView翻页控件--MVC实现
- 关于QTableView和QTableWidget设置代理的相关问题
- Qt学习之QTableView和QTableWidget的具体区别
- 浅谈QTableView和QTableWidget数据表格显示方式
- nyoj-106 背包问题
- Unity飘血文字
- echarts 没有数据时也显示Y轴
- base.AutoScaleMode = AutoScaleMode.Font; 方法“InitializeComponent”内的代码由设计器生成,不应手动修改。请移除任何更改,然后尝试重新打开设计
- matlab的kalmanfilter小例子
- QTableWidget和 QTableView翻页效果(准确计算Scroll,然后使用setSliderPosition函数)
- java 内的一些转移字符
- webstorm打开后无法显示文件夹目录
- 开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表
- ARM day4 UART传输协议
- CheckStyle插件在eclipse中的安装及配置
- 加密、解密
- 安卓数据库框架——Realm基础学习
- OracleBulkCopy类说明