我拖放一个表视图小部件 (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)。填充元素后如何调整大小?的主要内容,如果未能解决你的问题,请参考以下文章