qt - 使用 Qt 实现此目的的最佳方法是什么

标签 qt user-interface layout

我对 Qt 完全陌生,所以我很高兴能有一个广泛的答案。

我在这里画了一些模型:

enter image description here

我们有一种表格,其中包含:

  • 带有旋转框的整数值。
  • 一个带有三个(不是特别的)分组单选按钮的单元格
  • 编辑框
  • 与此特定编辑框交互的按钮。

  • 此外,我们有 2 个按钮来添加和删除表格中的项目。

    我做了一些谷歌搜索,发现它可以通过 QTableView 完成。
    有没有办法将如此复杂的结构放入一个单元格中?它必须是从 QTableView 继承的单独类吗?

    最佳答案

    我看到至少有三个选项可以在 Qt 中实现:

  • 使用 QtableViewQTableWidget并在其中插入一些自定义控件。查看其他人对您的帖子发表的评论
  • 使用 QGridLayout并按行和列填充您的控件
  • 自己做 QWidget使用 QHBoxLayout 存储和管理行元素(旋转框、编辑字段、单选按钮) .您可以在 QtCreator 中设计它,它可以拥有自己的 .ui。这可以很容易地处理每个 QWidget 之间的交互。一行(由您的 QWidget 类(class)直接处理)。稍后,您可以在 QVBoxLayout 中为您需要的每一行放置一个它的实例。 .

  • Personnaly,我会选择最后一个选项,但如果每行的控件具有不同的内容/大小(请参阅评论),它可能无法正常工作,那么应该首选第一个选项。

    关于qt - 使用 Qt 实现此目的的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45999608/

    相关文章:

    接受数学公式作为输入的 WinAPI 控件

    html - CSS 定位。 4个div等分并放入1个父div

    css - 对齐内容和对齐元素有什么区别?

    reactjs - 如何使用语义 UI 创建可折叠菜单以进行 react ?

    wpf - 布局导航窗口

    android - 如何从自定义属性中引用 android 属性 layout_width?

    python - Gstreamer 不在 Ubuntu 18.04 VM 上发送 'prepare-window-handle' 消息

    c++ - g++ 32 位与 64 位编译中的动态与静态链接差异

    qt - QML 获取默认字体高度值(以像素为单位)

    c++ - Q_PROPERTY 与私有(private)二传手