在触摸屏上使用QTableWidget,用滚动条来控制非常不方便,将右侧滚动条隐藏,改为通过按钮点击来进行逐行滚动,或者滚动到最前/最后。逐行滚动主要通过QTableWidget自带的setCurrentIndex函数来实现。
如上图,这是一个45*8的表,右侧滚动条已改为按钮。逐行滚动实现的逻辑是,初始默认表格能展现的最下面一行为初始行,上图中表格能展示17行,则初始行号为16,点击向下滚动,则setCurrentIndex(m_nItemIndex++);点击向上滚动,则setCurrentIndex(m_nItemIndex--)。下面贴出滚动部分代码实现。
m_nRowCount = 45;
m_nColumnCount = 8;
m_nItemIndex = 17 - 1;
m_pTable = new QTableWidget(this);
m_pTable->setFont(font);
m_pTable->setRowCount(m_nRowCount); //设置行数
m_pTable->setColumnCount(m_nColumnCount); //设置列数
m_pTable->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏垂直滚动条
m_pTable->setHorizontalScrollBarPolicy(Qt::Sc