嗨,我相当新的Qt场景,我无法更新我的comboBox2基于comboBox1选择。Qt更改ComboBox2基于组合框1
每当我在comboBox1中进行更改时,我的应用程序崩溃,说访问冲突。这可能是非常简单的,但这里是我的代码:在这种情况下,最初的comboBox1有“Car”和“Food”。每当我切换到“食物”,我想我的comboBox2填充项目“鸡蛋”。
任何想法出了什么问题?
main.h
class main:
{
Q_OBJECT
public:
main() {}
public slots :
private slots:
void onComboBoxIndexChanged();
private:
QComboBox* comboBox2;
void run();
};
的main.cpp
void main::run()
{
QWidget *w = new QWidget();
QComboBox *comboBox1 = new QComboBox();
QComboBox *comboBox2 = new QComboBox();
comboBox1->addItem("Car");
comboBox1->addItem("Food");
connect(comboBox1, SIGNAL(currentIndexChanged(int)), this, SLOT(onComboBoxIndexChanged()));
...
}
void main::onComboBoxIndexChanged()
{
QComboBox* combo = dynamic_cast<QComboBox*>(sender());
if (combo == nullptr)
{
return;
}
comboBox2->addItem("Egg");
}
您似乎将'QComboBox'对象分配给'run'函数中的局部变量。最有可能的是,你打算把它分配给成员'comboBox2'。 – Mike
嘿@Mike这是一个错字。我实际上正在分配到comboBox2。你看到代码有问题吗? – Arbitel