刚学,不熟悉一些部件,无法达到预期效果,点了没有反应算了好的,另人头疼是的程序崩溃,比如listwidget部件。左边第一个‘->’按钮将combobox当前项删除,并加入到listwidget中。 右边‘->’按钮将listwidget当前选中项删除,删除的项放回combobox中。
20140403.exe 中的 0x52d5ba16 (Qt5Widgetsd.dll) 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
20140403.exe 中的 0x52d5ba16 (Qt5Widgetsd.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
程序“[872] 20140403.exe: 本机”已退出,返回值为 -1073741819 (0xc0000005)。
左边第一个‘->’按钮
//*****************************************************************************************************************************************************************
void MyClass::on_pushButtonAchievementSeachCourse1_clicked()
{
ui.listWidgetAchievementSeachCourse->addItem(ui.comboBoxAchievementSeachCourse->currentText());
//将combobox中当前项加入listwidget
ui.comboBoxAchievementSeachCourse->removeItem(ui.comboBoxAchievementSeachCourse->currentIndex());//删除combobox当前项
}
//*****************************************************************************************************************************************************************
右边‘->’按钮
//*****************************************************************************************************************************************************************
void MyClass::on_pushButtonAchievementSeachCourse2_clicked()
{
ui.listWidgetAchievementSeachCourse->setFocus(); //设置焦点为listwidget
if(ui.listWidgetAchievementSeachCourse->count()>0) //listwidget中有项目就往下执行
{
ui.comboBoxAchievementSeachCourse->addItem(ui.listWidgetAchievementSeachCourse->currentItem()->text());
ui.listWidgetAchievementSeachCourse->takeItem(ui.listWidgetAchievementSeachCourse->currentRow());
}
另我疑惑的是:1、要是规规矩矩选中listwidget中的项目,再按移除键什么事都不会有。
2、不选中listwidget中项目,点一次添加,点一次移除,循环这样点也没事。
3、不选中listwidget中项目,点多次添加,再点移除,第一次循环没事。再次点加后,一按移除就崩溃了。
为什么为什么,明明设置焦点了,第一次为毛不崩等到第二次才崩,不知道,以后再解决,或是有高手提示一下。。。。。然后改变了思路改良了一下代码:用了isselected()函数
//*****************************************************************************************************************************************************************
void MyClass::on_pushButtonAchievementSeachCourse2_clicked()
{
if(ui.listWidgetAchievementSeachCourse->count()>0 )
{
for(int i=0;i<ui.listWidgetAchievementSeachCourse->count();i++) //遍历每一项检查是不是有选中
if(ui.listWidgetAchievementSeachCourse->item(i)->isSelected())
{
ui.comboBoxAchievementSeachCourse->addItem(ui.listWidgetAchievementSeachCourse->currentItem()->text());
ui.listWidgetAchievementSeachCourse->takeItem(ui.listWidgetAchievementSeachCourse->currentRow());
}
else;
}
}
//*****************************************************************************************************************************************************************
这样怎么按都不会崩溃了
7715




被折叠的 条评论
为什么被折叠?



