Hello, I'm designing a combobox that contains 2 column items, and can do filters and shorting based on what is typed in the combobox, the problem is that the combobox doesn't always appear when I write a search.
void Dialog_Sell::getCmbStock(){
QStandardItemModel *model= new QStandardItemModel(arrStock.size(), 2, this);
for(int i=0; i<arrStock.size(); i++){
QStandardItem *kol1 = new QStandardItem( QString("%0").arg(code[i]) );
QStandardItem *kol2 = new QStandardItem( QString("%0").arg(name[i]) );
model->setItem(i, 0, kol1);
model->setItem(i, 1, kol2);
}
delegate = new Delegate();
QTableView* tableView = new QTableView( this );
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(model);
proxyModel->setFilterKeyColumn(-1);
tableView->setModel( proxyModel);
tableView->setItemDelegate(delegate);
tableView->verticalHeader()->setVisible(false);
tableView->horizontalHeader()->setVisible(false);
tableView->setColumnWidth ( 0, 60 );
tableView->setColumnWidth ( 1, 260 );
tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
tableView->setStyleSheet("background-color: rgb(255, 255, 255);");
tableView->setAutoScroll(false);
tableView->setShowGrid(false);
tableView->setAlternatingRowColors(true);
tableView->setSortingEnabled(false);
tableView->setVerticalScrollMode(QTableView::ScrollPerPixel);
connect(ui->cmbStock, &QComboBox::editTextChanged, [=]{
QString query = ui->cmbStock->currentText();
delegate->setQuery(query);
//proxyModel->setFilterRegularExpression(query);
proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
proxyModel->invalidate();
//return ;
});
ui->cmbStock->setModel(proxyModel);
ui->cmbStock->setView( tableView );
ui->cmbStock->setStyleSheet("QComboBox QAbstractItemView {min-width: 250px;}"
"QComboBox { background-color: white; }");
}
[image: 3f59bc16-b6f9-45ca-a044-a0abaf1d8d42.png]