嗨,我相當新的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