我拖放一个表视图小部件 (Qt)。填充元素后如何调整大小?

Posted

技术标签:

【中文标题】我拖放一个表视图小部件 (Qt)。填充元素后如何调整大小?【英文标题】:I drag and drop a Table View widget (Qt). How to resize it after filling the elements? 【发布时间】:2011-07-25 07:16:57 【问题描述】:

我正在使用 Ubuntu/c++ 语言。

我有以下 QTable :

 ui1->tableView_->setVisible(false);
 QStandardItemModel *itemmodel_ = new QStandardItemModel(0,1);
 itemmodel_->setHeaderData(0, Qt::Horizontal, tr("File"));
  ui1->tableView_->setModel(itemmodel_);
//.. add new rows in the table

  ui1->tableView_->resizeColumnsToContents();
              ui1->tableView_->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);

  ui1->tableView_plugin->setVisible(true);

运行应用程序后,表格不会调整大小。我哪里错了?如何解决问题?

还有一个问题:如何选择一整行以便在按下删除按钮后将其删除。

欣赏。 谢了

【问题讨论】:

【参考方案1】:

您似乎没有将 TableView 添加到任何布局中。您需要将其添加到表单中的任何布局中。例如:

QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(tableView);

布局是小部件的容器。它的目的是为其小部件添加定位和调整大小规则。例如 QVBoxLayout 只是垂直排列小部件。您可以将布局与其他布局组合。因此,您可以更简单地构建复杂的 UI 设计(支持调整大小)。更多信息可以查看this document和this document

【讨论】:

这是什么布局?我可以为我拥有的所有按钮表设置一个布局吗? 我在哪里添加布局线?在我填充表格视图的方法中? 您可以通过在设计器上选择***小部件并单击任何布局按钮(垂直、水平、网格等)来定义***布局(请查看我的答案的第一个链接)然后您可以访问此在代码中使用QWidget::layout() 的***布局。 +1 - 听起来很傻(确实如此),但我有同样的错误。

以上是关于我拖放一个表视图小部件 (Qt)。填充元素后如何调整大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个 QT 图形视图小部件之间同步移动

如何拖放自定义小部件?

如何使布局填充qt选项卡小部件内的所有内容?

在 QT 中实现具有多个小部件的视图的最佳方法是啥?

从 Qt 中的文本文件填充表格小部件

如何使Qt小部件可调整大小[重复]