for(int i=0;i<2;i++)
{
QListWidgetItem *item=new QListWidgetItem();
item->setData(Qt::USerRole+1,QVariant::fromValue<XXX类型>(XX对象));//绑定数据
MyWidget *w=new MyWidget();//实例化自定义窗口w
item->setData(Qt::USerRole+2,QVariant::fromValue<QWidget*>(w));//绑定数据
item->setText("XXX");//设置显示文字
ui.ImgListWidget->addItem(item);
ui.mStackedWidget->addWidget(w);//把w添加到ui.mStackedWidget中
}
verticalLayout=new QVBoxLayout(ui.mStackedWidget);//把ui.mStackedWidget添加到布局
connect(ui.ImgListWidget,&ListWidget::currentItemChanged,[=](QListWidgetItem *current,QListWidgetItem*previous)
{
if(!current)
return;
QWidget *w=current->data(Qt::UserRole+2).value<QWidget*>();
if(w)
{
ui.mStackedWidget->setVisible(true);
}
else
ui.mStackedWidget->setVisible(false);
});
点击影像列表,旁边参数窗口显示对应自定义的QWidget(添加到QStackWidget,自适应大小)
最新推荐文章于 2024-04-29 15:39:32 发布