• 5951阅读
  • 4回复

怎样才能使下拉列表选项与Tab widget的页标签联系起来..急呀??? [复制链接]

上一主题 下一主题
离线hx860812
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-20
刚学Qt新手,望各位高手帮帮忙.........在这里先谢了......
Qt 4.4.3中在addressbook 的例子里,我在原来的新增对话框里面添加了一个QComboBox,并添加几项如( 同学,朋友,同事...) 在把tab Widget的页标签改成同样的类型````````
请问一下怎样在新增的时候 (选择某类型后)     将数据存储在相应类型的页标签视图中???
备注:原来没有下拉列表时是按名字的首字母与标签中字母比较在存储的.`````原来.部分代码如下:[

void AddressWidget::setupTabs()
{
     QStringList groups;
     groups << "ABC" << "DEF" << "GHI" << "JKL" << "MNO" << "PQR" << "STU" << "VW" << "XYZ";

     for (int i = 0; i < groups.size(); ++i) {
         QString str = groups.at(i);

         proxyModel = new QSortFilterProxyModel(this);
         proxyModel->setSourceModel(table);
         proxyModel->setDynamicSortFilter(true);

         QTableView *tableView = new QTableView;
         tableView->setModel(proxyModel);
         tableView->setSortingEnabled(true);
         tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
         tableView->horizontalHeader()->setStretchLastSection(true);
         tableView->verticalHeader()->hide();
         tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
         tableView->setSelectionMode(QAbstractItemView::SingleSelection);

        QString newStr = QString("^[%1].*").arg(str);

         proxyModel->setFilterRegExp(QRegExp(newStr, Qt::CaseInsensitive));
         proxyModel->setFilterKeyColumn(0);

         proxyModel->sort(0, Qt::AscendingOrder);
         connect(tableView->selectionModel(),
             SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
             this, SIGNAL(selectionChanged(const QItemSelection &)));

         addTab(tableView, str);
     }
}
[ 此帖被hx860812在2009-03-20 10:19重新编辑 ]
离线125380524
只看该作者 1楼 发表于: 2009-03-20
俺也是菜鸟!!不懂!
[ 此帖被125380524在2009-03-20 10:51重新编辑 ]
离线hx860812
只看该作者 2楼 发表于: 2009-03-21
怎么没人来啊.........
各为大虾,..总版主啊..都来帮我解决一下...
谢谢了
离线sanghk

只看该作者 3楼 发表于: 2009-03-22
例子中的分组是与QSortFilterProxyModel与相关的,是按联系人的名称的头字母分类的,如果你增加新的分类,有两种方法:
1:你增加的联系人的姓名头为同学,朋友,同事等,如:同学王某,等,此方法不用修改程序的结构。
2:在数据中增加一个用于分类的字段,如catalog,用于保存分类信息,如同学、同事等。修改QSortFilterProxyModel中关于排序的方法:lessThan,就可以了。
离线hx860812
只看该作者 4楼 发表于: 2009-03-23
非常感谢这位热心人,谢谢了.
快速回复
限100 字节
 
上一个 下一个