gpt4 book ai didi

c++ - 将 QTableView 添加到 QComboBox

转载 作者:行者123 更新时间:2023-11-28 05:00:02 28 4
gpt4 key购买 nike

我正在从数据库中检索一组结果,我想用数据库中的结果列填充 QComboBox(QComboBox 的每一行都应具有与数据库结果相同的列),然后我想能够从 QComboBox 的一行中检索特定列并在应用程序中进一步使用它。我在想是否可以将 QTableView 添加到 QComboBox。我想这样做是因为我想以某种方式为结果添加更多含义,一些结果列只是纯数字,而其他列是描述信息。

我发现可以连接结果并填充 QComboBox 但这将使每一行只有一个值可供使用,我必须分解字符串以获得所需的确切部分一起工作。

最佳答案

默认出现的弹出窗口是 QListView , 这可以用继承自 QAbstractItemView 的任何对象进行更改,在本例中为 QTableView将用于它使用 setView()方法,点击时的结果应该返回选中行的一项,那么设置选中后显示的列将使用方法setModelColumn()指示列的位置,但在此之前使用方法将模型设置为 QComboBox setModel() .

# my model
model = new QSqlTableModel;
model->setTable("person");
model->select();
# setModel
comboBox->setModel(model);
# select column
comboBox->setModelColumn(1);

QTableView *view = new QTableView(this);
comboBox->setView(view);

注意:模型设置为 QComboBox,而不是 QTableView。此外,您可能会遇到 QTableView 宽度的问题,因此我们必须调整大小,在我的例子中使用以下内容:

view->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
view->setMinimumWidth(500);

完整的例子可以在下面的link中找到

关于c++ - 将 QTableView 添加到 QComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46265368/

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