QTableWidget如何禁止改变列宽?

加盾男爵 2017-04-06 02:45:47
对于一个QTableWidget我设置了他的列宽
tableWidgets->setColumnWidth(i,100)

但我用鼠标还是能够改变这一列的宽度,我想问下,有什么办法能禁止鼠标点击列(两列之间的线),然后拖动改变列宽?
...全文
1889 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
失散糖 2017-11-02
  • 打赏
  • 举报
回复
引用 7 楼 qq_33292480 的回复:
//设置列不能拖动 tableWidget->horizontalHeader()->setDisabled(true); //设置行不能拖动 tableWidget->verticalHeader()->setDisabled(true);
引用 8 楼 yp987 的回复:
// 使列宽不能拖动 tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed); tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
题外话,该如何冻结表格的前几行和前几列,不受表格滚动条的影响呢? 还一个,我想在每次更新表格之后,计算表格每一列的合适宽度并自动设置好,但是设置之后,可能导致表格右侧原有的滚动条消失了,自动设置的宽度就不是合适的了,因为右边空出恰好一个滚动条的宽度。但是呀,模拟出这样的情况之后,我该怎么考察滚动条是否消失?
yp987 2017-09-13
  • 打赏
  • 举报
回复
// 使列宽不能拖动 tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed); tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
qq_33292480 2017-09-08
  • 打赏
  • 举报
回复
//设置列不能拖动 tableWidget->horizontalHeader()->setDisabled(true); //设置行不能拖动 tableWidget->verticalHeader()->setDisabled(true);
  • 打赏
  • 举报
回复
setFixedWidth(int w) 试试
加盾男爵 2017-04-13
  • 打赏
  • 举报
回复
引用 4 楼 sugar13 的回复:
我也想那么弄过,只是没发现好办法,隐藏表头是个变通的方法。 我还想试试冻结表格的前几行和前几列,不受表格滚动条的影响,也没发现啥好办法,虽然我在Demo里面找到个表格嵌套表格的变通方法 要不试试拦截表格鼠标的Event?
蛋疼啊。。。。 隐藏标题肯定不行,我这个项目和别的(公司的)项目对接,数据是别人的。。。 拦截鼠标事件貌似也不行,这个表壳需要鼠标选择连续行的功能 感觉不止蛋疼,胃都疼了。。
加盾男爵 2017-04-12
  • 打赏
  • 举报
回复
引用 2 楼 sugar13 的回复:
Qt的表格太难玩了,还是别折腾了,直接把表头藏起来吧,第0行做表头用
这和标题没什么关系吧
失散糖 2017-04-12
  • 打赏
  • 举报
回复
我也想那么弄过,只是没发现好办法,隐藏表头是个变通的方法。 我还想试试冻结表格的前几行和前几列,不受表格滚动条的影响,也没发现啥好办法,虽然我在Demo里面找到个表格嵌套表格的变通方法 要不试试拦截表格鼠标的Event?
失散糖 2017-04-11
  • 打赏
  • 举报
回复
Qt的表格太难玩了,还是别折腾了,直接把表头藏起来吧,第0行做表头用
加盾男爵 2017-04-10
  • 打赏
  • 举报
回复
有人知道么

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧