ฉันพยายามเลือกรายการ "leaf2" จาก QComboBox ด้วย QTreeView ในโค้ดด้านล่าง
ฉันแค่ต้องการเลือกรายการที่ไม่มีลูกจากข้อความตามรหัส (ถ้ามีลูกจะไม่สามารถเลือกได้)
ฉันจะเลือกรายการหรือดัชนีที่ไม่มีรายการย่อยได้อย่างไร
ใครสามารถช่วยฉันด้วยปัญหานี้?
ขอบคุณ
void Main::initView()
{
QStandardItemModel *model = new QStandardItemModel;
QStandardItem *root_item = model->invisibleRootItem();
// Build Model Items
QStandardItem *node_item = NULL;
node_item = new QStandardItem("Node");
node_item->setFlags(Qt::ItemIsEnabled);
root_item->appendRow(node_item);
QStandardItem *leaf_item = new QStandardItem("leaf1");
leaf_item ->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
node_item->appendRow(leaf_item );
leaf_item = new QStandardItem("leaf2");
leaf_item ->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
node_item->appendRow(leaf_item );
// Set Model to TreeViewComboBox
ui.cb_treevew->setModel(model);
ui.cb_treeview->setCurrentIndex(0); // "Node" is selected.
ui.cb_treeview->setCurrentIndex(1); // Nothing is selected.
ui.cb_treeview->setCurrentIndex(2); // Nothing is selected.
ui.cb_treeview->setCurrentIndex(3); // Nothing is selected.
}
นี่คือรหัสของฉันสำหรับ CTreeViewComboBox
CTreeViewComboBox::CTreeViewComboBox(QWidget *parent) : QComboBox(parent)
{
QTreeView* treeView = new QTreeView(this);
treeView->setEditTriggers(QTreeView::NoEditTriggers);
treeView->setSelectionBehavior(QTreeView::SelectRows);
treeView->setSelectionMode(QTreeView::SingleSelection);
treeView->setItemsExpandable(true);
treeView->header()->setVisible(false);
treeView->setWordWrap(true);
setView(treeView);
}
PS: ฉันพยายามเลือกรายการดังต่อไปนี้ แต่ใช้งานไม่ได้ :(
ui.cb_treeview->treeView()->setCurrentIndex(getModelIndexFromText("leaf2"));