Qt C++ QComboBox popup two column
Unsolved
General and Desktop
-
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.
![alt text]( image url)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; }");
}