24,855
社区成员
发帖
与我相关
我的任务
分享
(class myWidget: public QWidget;)
QListWidgetItem *listWidgetItem = new QListWidgetItem[10]
myWidget *m_myWidget = new myWidget[10];
int iCurrentCnt = ui.listWidget->count();//数界面当前有多少组
if(iCurrentCnt==index)
return;
else if(iCurrentCnt<index)//当前小于下拉框的值,添加
{
for(int i=iCurrentCnt;i<index;i++)
{
ui.listWidget->addItem(&listWidgetItem[i]);
ui.listWidget->setItemWidget(&listWidgetItem[i],&m_myWidget[i]);
}
}
else if(iCurrentCnt>index)//当前大于下拉框的值,删除
{
for(int i=iCurrentCnt;i>index;i--)
{
ui.listWidget->takeItem(i);
}
}
QListWidgetItem *listWidgetItem[10];
for(int i =0;i<10;i++)
{
listWidgetItem[i] = new listWidgetItem;
}
在思考为什么???????????
请指点,多谢MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// item = new QListWidgetItem[10];
for(int i=0; i<10; i++)
{
item[i] = new QListWidgetItem;
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_comboBox_activated(int index)
{
int count = ui->listWidget->count();
index++;
qDebug() << "count:" << count << " | intex:" << index;
if(index > count)
{
for(int i=count; i<index; i++)
{
ui->listWidget->addItem(item[i]);
ui->listWidget->item(i)->setText(QString::number(i+1));
}
}
if(index < count)
{
for(int i=count; i>index; i--)
{
ui->listWidget->takeItem(i-1);
}
}
}
for(int i=0; i<10; i++)
{
item[i] = new QListWidgetItem;
}
就好了,没报错了。