• 2566阅读
  • 0回复

QListWidget中check和item信号问题。。求解答,谢谢。 [复制链接]

上一主题 下一主题
离线liuligang88
 

只看楼主 倒序阅读 楼主  发表于: 2016-03-16
我在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,就会出现错误,关闭程序。
这个问题该如何解决??求解答,谢谢。
快速回复
限100 字节
 
上一个 下一个