Qt QCompleter和QListWidget作为自定义弹出问题
我有一个QCompleter,它使用QPlainTextEdit()的QStringListModel: 它很好用。现在,我需要一些图标和工具提示,用于我尝试使用QListWidget作为自定义弹出窗口的每个建议:Qt QCompleter和QListWidget作为自定义弹出问题,qt,model,autocomplete,qcompleter,Qt,Model,Autocomplete,Qcompleter,我有一个QCompleter,它使用QPlainTextEdit()的QStringListModel: 它很好用。现在,我需要一些图标和工具提示,用于我尝试使用QListWidget作为自定义弹出窗口的每个建议: QListWidget* w = new QListWidget(); foreach(name, names) { QListWidgetItem* i = new QListWidgetItem(name); i->setIcon(/*my Icon
QListWidget* w = new QListWidget();
foreach(name, names) {
QListWidgetItem* i = new QListWidgetItem(name);
i->setIcon(/*my Icon*/);
i->setToolTip("");
w->addItem(i);
}
completer->setPopup(w);
弹出的好,就像我需要的,但完成没有更多的工作。我无法键入文本以使其过滤建议,只需按上/下键即可。我尝试过:
completer->setModel(w->model());
但是没有帮助我的错误是什么,或者只是QStringListModel给了我过滤建议的能力?你有什么建议吗?
谢谢你 我主要和PyQt打交道,但都是一样的。我的语法可能不正确,但您应该使用QStandardItemModel与QStringListModel。从那里,您可以将其保留为标准弹出窗口(QListView) 比如:
QStandardItemModel* model = new QStandardItemModel();
// initialize the model
int rows = names.count(); // assuming this is a QStringList
model->setRowCount(rows);
model->setColumnCount(1);
// load the items
int row = 0;
foreach(name, names) {
QStandardItem* item = new QStandardItem(name);
item->setIcon(QIcon(":some/icon.png");
item->setToolTip("some tool tip");
model->setItem(row, 0, item);
row++;
}
completer->setModel(model);
completer->popup()->setModel(model); // may or may not be needed
QStandardItemModel* model = new QStandardItemModel();
// initialize the model
int rows = names.count(); // assuming this is a QStringList
model->setRowCount(rows);
model->setColumnCount(1);
// load the items
int row = 0;
foreach(name, names) {
QStandardItem* item = new QStandardItem(name);
item->setIcon(QIcon(":some/icon.png");
item->setToolTip("some tool tip");
model->setItem(row, 0, item);
row++;
}
completer->setModel(model);
completer->popup()->setModel(model); // may or may not be needed