我在QListWidget控件中添加item同时有check检测,加了5个item,当点击每个item时,对应的QTabWidget里出现相应item的介绍信息,
每个item前的Checkbox,检测到会有线程运行,如下代码:
QListWidgetItem *elem;
elem = new QListWidgetItem(AP_TestItemTable[OP_FlashModule].TestFunName, ui->FunCheckListBox);
elem->setCheckState(Qt::Unchecked);
elem = new QListWidgetItem(AP_TestItemTable[OP_BusInterface ].TestFunName, ui->FunCheckListBox);
elem->setCheckState(Qt::Unchecked);
elem = new QListWidgetItem(AP_TestItemTable[OP_FlashInterface ].TestFunName, ui->FunCheckListBox);
elem->setCheckState(Qt::Unchecked);
elem = new QListWidgetItem(AP_TestItemTable[OP_Dram].TestFunName, ui->FunCheckListBox);
elem->setCheckState(Qt::Unchecked);
elem = new QListWidgetItem(AP_TestItemTable[OP_BadBlock ].TestFunName, ui->FunCheckListBox);
elem->setCheckState(Qt::Unchecked);
connect(ui->FunCheckListBox,SIGNAL(itemClicked(QListWidgetItem *)),this,SLOT(connectFri(QListWidgetItem *)));
void MITTool::connectFri(QListWidgetItem *)
{
ui->PageControl2->clear();
if(ui->FunCheckListBox->currentItem()->text() == "Flash Module Test")
{
edit1->setReadOnly(true);
ui->PageControl2->addTab(edit1,"OP_FlashModule");
edit1->setText("Flash Module Test ");
}
if(ui->FunCheckListBox->currentItem()->text() == "Bus Interface Test")
{
edit2->setReadOnly(true);
ui->PageControl2->addTab(edit2,"OP_SataTest");
edit2->setText("Bus Interface Test ");
}
if(ui->FunCheckListBox->currentItem()->text() == "Flash Interface Test")
{
edit3->setReadOnly(true);
ui->PageControl2->addTab(edit3,"OP_FlashTest");
edit3->setText("Flash Interface Test.");
}
if(ui->FunCheckListBox->currentItem()->text() == "Dram Test")
{
edit4->setReadOnly(true);
ui->PageControl2->addTab(edit4,"OP_DramTest");
edit4->setText("Dram Test.");
}
if(ui->FunCheckListBox->currentItem()->text() == "Bad Block Test")
{
edit5->setReadOnly(true);
edit5_1->setReadOnly(true);
ui->PageControl2->addTab(edit5,"OP_BadBlock");
edit5_1->setText("Bad Block Test.");
}
}
但现在,每次运行后,当先点击item,再点checkbox不会出现错误,程序正常。
当先点击checkbox,就会出现错误,关闭程序。
这个问题该如何解决??求解答,谢谢。