小编Jus*_*ock的帖子

if 语句中的几个别名命名空间

是否可以在 if 语句中设置名称空间别名并在之后使用它?

我用下面的代码尝试过:

 const int dim = 2;
         //default namespace
        namespace poissonProblem = poissonProblem3D;
         //trying to set the necessary namespace
        if(dim == 1){
            namespace poissonProblem = poissonProblem1D;
        }
        else if (dim == 2){
            namespace poissonProblem = poissonProblem2D;
        }
        else if (dim == 3){
            namespace poissonProblem = poissonProblem3D;
        }
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用像后来这样的函数时poissonProblem::eval(),它仍然是使用的函数poissonProblem3D::eval()

您是否有任何想法,或者对其他实施/解决方法的建议?

我不想为每个维度实现代码,因为尽管使用了命名空间,但它几乎是相同的。

谢谢,贾斯特斯

c++ namespaces

5
推荐指数
1
解决办法
255
查看次数

按字母顺序更新和排序Qt ComboBoxes

我想编写一个程序,像使用Qt框架的小导航系统一样工作,但是我对它仍然很陌生。

我创建了一个带有两个组合框的对话框。每个组合框都包含所有“城市名称”。在初始化时,两个框的内容均按字母顺序排序。

如果在第一个框中选择了一个名称,则不应在第二个名称中以其他方式显示该名称。

如果选择了另一个项目,我成功地删除了该项目并再次添加了它,但知道我无法对其进行排序

这是我到目前为止尝试进行的更新:

for(std::vector<City>::iterator iter = citylist.begin(); iter != citylist.end(); iter++){
    if(ui->combo2->currentText() != (*iter).getName()
            and ui->combo1->findText((*iter).getName()) == -1){
        ui->combo1->addItem((*iter).getName(),QComboBox::InsertAlphabetically);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不会按字母顺序插入项目...

所以我后来尝试对它进行排序:

 QSortFilterProxyModel* proxy = new QSortFilterProxyModel(ui->combo1);

proxy->setSourceModel(ui->combo1->model());

// combo's current model must be reparented,
// otherwise QComboBox::setModel() will delete it
ui->combo1->model()->setParent(proxy);

ui->combo1->setModel(proxy);

// sort
ui->combo1->model()->sort(0);
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试调用此函数,则会发生错误,并且应用程序终止。

那么,有谁可以帮助我呢?

c++ sorting qt combobox

3
推荐指数
2
解决办法
6050
查看次数

标签 统计

c++ ×2

combobox ×1

namespaces ×1

qt ×1

sorting ×1