Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt5带QCheckBox多个选择器的QCOMBOX_Qt_User Interface_Qt Designer_Qcombobox_Multipleselection - Fatal编程技术网

Qt5带QCheckBox多个选择器的QCOMBOX

Qt5带QCheckBox多个选择器的QCOMBOX,qt,user-interface,qt-designer,qcombobox,multipleselection,Qt,User Interface,Qt Designer,Qcombobox,Multipleselection,我使用Qt Designer设计了GUI,在尝试创建具有多个选择的组合框时,我注意到我似乎无法通过等效的.CPP文件修改在.UI文件中创建的GUI元素 所以基本上我想知道这是一个已知的特性,我需要通过.CPP文件单独实现GUI,还是我没有正确地实现多重选择?我刚接触Qt,有点困惑 我尝试过这个,但当我尝试在现有应用程序中实现它时,它不起作用: 这是我的代码的一部分。我初始化在Qt Designer中设计的GUI,然后根据链接的答案创建一个新模型并为其分配数据,然后尝试将我的一个组合框的模型更改为

我使用Qt Designer设计了GUI,在尝试创建具有多个选择的组合框时,我注意到我似乎无法通过等效的.CPP文件修改在.UI文件中创建的GUI元素

所以基本上我想知道这是一个已知的特性,我需要通过.CPP文件单独实现GUI,还是我没有正确地实现多重选择?我刚接触Qt,有点困惑

我尝试过这个,但当我尝试在现有应用程序中实现它时,它不起作用:

这是我的代码的一部分。我初始化在Qt Designer中设计的GUI,然后根据链接的答案创建一个新模型并为其分配数据,然后尝试将我的一个组合框的模型更改为新模型。当我运行应用程序时,组合框在那里,但为空

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ...

    QStandardItemModel model(3, 1); // 3 rows, 1 col
    for (int r = 0; r < 3; ++r)
    {
        QStandardItem* item = new QStandardItem(QString("Item %0").arg(r));

        item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
        item->setData(Qt::Unchecked, Qt::CheckStateRole);

        model.setItem(r, 0, item);
    }

    ui->comboBox_2->setModel(&model);
}
MainWindow::MainWindow(QWidget*parent):QMainWindow(parent)、ui(新ui::MainWindow)
{
用户界面->设置用户界面(此);
...
QStandarItemModel模型(3,1);//3行,1列
对于(int r=0;r<3;++r)
{
QStandardItem*item=新的QStandardItem(QString(“item%0”).arg(r));
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Unchecked,Qt::CheckStateRole);
model.setItem(r,0,item);
}
ui->comboBox_2->setModel(&model);
}

我通过在头文件中将新模型声明为指针,然后实例化它并将其分配给组合框来修复它:D

我尝试了这个方法,但当我尝试在我现有的app:ComboBox of checkbox中实现它时,它不起作用?
你必须给出更多的信息。什么不起作用?显示一些您尝试过的代码。我已经自行运行了另一个问题答案中给出的代码,当然,它可以完美地工作。但是,当我尝试创建一个模型时,使用该答案中提供的确切代码,然后将其分配给我的应用程序中的现有组合框,该框将显示为空。(如中所示,我点击了下拉菜单,但什么也没发生)显示您的代码。向我们展示您创建模型的部分,向其中添加项目并将其设置为组合框。有什么问题吗?您的
QStandardItemModel
对象在您的
主窗口
构造函数完成后超出范围。这就是为什么你必须用
new
来初始化你的对象。因为你在组合框中有多个选项,当组合框处于非活动状态时(没有弹出窗口时),会显示哪个项目?@Aleksander我想我只是重新填充了它,以“选择评估优先”之类的方式。几个月前完成了那个项目。