我希望Qt v4.7.1在Qt Designer中使用QTableWidget是一个简单的问题。我想创建一个QTableWidget设置为3x3网格的对话框,然后设置表的初始大小以准确显示3x3网格,没有滚动条。我不希望桌子比这更大或更小。然后,我想将对话框的初始大小(可以是固定大小)设置为此表所需的确切大小。
我在Qt Designer中完成了这些步骤:
调整大小以适合表格的对话框是正确的。但是我怎样才能调整表格的大小以适应它的内容?
我尝试了很多其他的事情,例如。将表格上的大小政策更改为“固定,固定”或“最小,最小”,但仍希望将初始大小设置为与内容不匹配的大小。理想情况下,我希望表/对话框只设置正确的初始大小,并允许用户使对话框更小(这将添加滚动条)但如果我必须修改大小,它不是世界末日。
是否可以在Qt Designer中执行此操作,还是应该在代码中设置大小?
非常感谢您的回复。
答案 0 :(得分:2)
请注意,除非QTableWidget不强制任何大小,否则您的QDialog也不会。所以你需要的是修复QTableWidget的大小; QDialog与此无关。当QTableWidget想强制另一个大小时,布局将尝试调整QDialog的大小。
但据我所知,将QTableWidget的大小设置为特定的行数/列数是不可能的,至少不是在QtDesigner中。
您需要编写一些代码才能实现此目的。代码需要请求列的宽度和行的高度(包括标题),并添加窗口小部件的边框。然后使用ui->tableWidget->setFixedSize(...)
设置此大小。如果为用户启用此选项,则还需要对列/行的大小调整做出反应。
对于固定单元格大小和不可见标题,有一种可能的解决方案,没有手动代码(完全在QtDesigner中):
答案 1 :(得分:1)
对于固定单元格大小,您可以直接从QtDesigner使用setFixedSize和QSizePolicy :: Fixed。
如果要为其内容长度调整列/行的大小,请在代码中使用resizeColumn(s)[Row(s)] ToContents。
如果你想将调整大小附加到QDialog调整大小 - 在代码中的Dialog的resizeEvent中编写代码。
Dinamically resizing table cell只能来自QtDesigner
的代码