gpt4 book ai didi

c++ - Qt4 Designer 使用 QTableWidget 创建对话框

转载 作者:行者123 更新时间:2023-11-30 03:01:51 25 4
gpt4 key购买 nike

我希望在 Qt Designer 中使用 QTableWidget 和 Qt v4.7.1 时遇到一个简单的问题。我想创建一个 QTableWidget 设置为 3x3 网格的对话框,然后设置表格的初始大小以准确显示 3x3 网格,没有滚动条。我不希望 table 比这更大或更小。然后我想将对话框的初始大小(可以是固定大小)设置为该表所需的确切大小。

我在 Qt Designer 中完成了这些步骤:

  1. 创建一个新对话框(对于这个例子,我们将使用一个没有按钮的对话框)。
  2. 拖入一个 QTableWidget。
  3. 双击表格并设置 3 行(称为 1、2 和 3)和 3 列(同样),然后单击“确定”。
    • 该表格现在与我最初将其拖入时的空表格大小相同。这对于三列来说不够宽,所以我有一个水平滚动条,对于三行来说太高了,所以我有很多底部的空白区域。
  4. 右键单击对话框并选择“在网格中布局”(或水平/垂直)。
    • 表格现在调整大小以填充比所需的更大的对话框,因此我可以看到所有行/列,但右侧和底部有很多空白区域。
  5. 右键单击对话框并说“调整大小”。
    • 表格现在跳回到初始大小,即。水平滚动条不够宽,而且太高。对话框已调整大小以适合此表格。

调整大小以适合表格的对话框是正确的。但是我怎样才能调整表格的大小以适应它的内容呢?

我已经尝试了很多其他的东西,例如。将表上的大小策略更改为“固定,固定”或“最小,最小”,但它仍然希望将初始大小设置为与内容不匹配的大小。理想情况下,我希望表格/对话框仅设置正确的初始大小,并允许用户缩小对话框(这会添加滚动条),但如果我必须固定大小,这并不是世界末日。

是否可以在 Qt Designer 中执行此操作,还是我应该在代码中设置大小?

非常感谢任何回复。

最佳答案

请注意,除非 QTableWidget 不强制任何大小,否则您的 QDialog 也不会。所以你需要的是固定QTableWidget的大小; QDialog 与此无关。当 QTableWidget 想要强制另一个大小时,布局将尝试调整 QDialog 的大小。

但据我所知,将 QTableWidget 的大小设置为特定的行数/列数是不可能的,至少在 QtDesigner 中是不可能的。

您需要编写一些代码来实现此目的。代码需要请求列的宽度和行的高度(包括标题),并添加小部件的边框。然后使用 ui->tableWidget->setFixedSize(...) 设置这个大小。如果您为用户启用此功能,那么您还需要对调整列/行的大小使用react。


对于固定的单元格大小和不可见的标题,有一个可能的解决方案,无需手动代码(完全在 QtDesigner 中):

  • 设置(水平|垂直)HeaderVisible = false
  • 设置(水平|垂直)HeaderDefaultSectionSize = (fixedValue)
  • 设置(水平|垂直)HeaderMinimumSectionSize = (fixedValue)
  • 将 QTableWidget 的大小设置为大小的总和。请记住将(列数 + 1)和(行数 + 1)像素添加到 QTableWidget 的固定总大小。

关于c++ - Qt4 Designer 使用 QTableWidget 创建对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10701199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com