// 在item中添加一个lable 和 按钮
QWidget *widget1 = new QWidget(ui->listWidget);
QHBoxLayout *layout = new QHBoxLayout(widget1);
QLabel *lab1 = new QLabel(widget1);
QLabel *lab2 = new QLabel(widget1);
layout->addWidget(lab1);
layout->addWidget(lab2);
layout->addWidget(btn1);
lab1->setText(str);
lab2->setText("aaa");
btn1->setObjectName(QStringLiteral("button1")); // 设置按钮名称
lab1->setObjectName(QStringLiteral("label1")); // 设置label名称
lab2->setObjectName(QStringLiteral("label2")); // 设置label名称
btn1->setText(tr("测试按钮"));
widget1->setLayout(layout);
// 添加自定义的item
QListWidgetItem *aItem = new QListWidgetItem(ui->listWidget);
ui->listWidget->addItem(aItem);
aItem->setSizeHint(QSize(0,50));
ui->listWidget->setItemWidget(aItem,widget1);
2. 用鼠标" 单击" 获取自定义控件的信息
核心:
1. 通过选中的item, 获取里面的QWidget
QWidget* pwig = ui->listWidget->itemWidget(item);
2. 从得到的widget上的找到需要的子控件
方法一: QList<QLabel*> labelList = pwig->findChildren<QLabel*>();
方法二: QLabel * label = pwig->findChild<QLabel *>("label2");
void ListWidgetTest::on_listWidget_itemClicked(QListWidgetItem *item)
QWidget* pwig = ui->listWidget->itemWidget(item); // 获取里面的QWidget
if (pwig != NULL)
// 方法一 获取所有
QList<QLabel*> labelList = pwig->findChildren<QLabel*>(); // 获取所有的Qlabel
foreach(QLabel *label, labelList)
qDebug()<< label->text();
if(label->objectName() == "label1")
ui->checkText->setText(label->text()); // 获取表中的值
// 方法二 findChild获取一个,如果不带参数返回第一个子控件
QLabel * label = pwig->findChild<QLabel *>("label2");
ui->checkText->setText(label->text()); // 获取表中的值
ui->checkText->setText(item->text()); // 获取表中的值
// 修改里面的内容
// QLabel * label = pwig->findChild<QLabel *>(); // 只有一个label 可以用 findchild
// label->setText(tr("内容已修改"));
---------------------
作者:chen1231985111
来源:CSDN
原文:https://blog.csdn.net/chen1231985111/article/details/86304481
版权声明:本文为博主原创文章,转载请附上博文链接!
如上面这个界面 ,添加一个自定义 item(第一行)1. 自定义item // 在item中添加一个lable 和 按钮QWidget *widget1 = new QWidget(ui->listWidget);QHBoxLayout *layout = new QHBoxLayout(widget1);QLabel *lab1 = new QLabel(widge...
①需要一个控件类型,可以是QLabel、QPushButton、QWidget等
②需要一个QWigdet类型的界面地址,可以是this即当前主界面,或者ui->widget…等,即某个子界面
③需要一个控件名字,QString类型,即通过setObjectName设置的名字,当然也可以为空,为空则表示界面下①类型的所有控件
QList<QPushButt.
// 在item中添加一个lable 和 按钮
QWidget *widget1 = new QWidget(ui->listWidget);
QHBoxLayout *layout = new QHBoxLayout(widget1);
QLabel *lab1 = new QLabel(widge...
QListWidget
QLIstWidget中有一个setItemWidget( QListWidgetItem *item, QWidget *widget) 函数接口 ,通常用来设置显示我们自定义的QWidget, 然后将item 与 我们自定义的QWidget 相关联。
需要注意的是:
QListWidgetItem *ITEM = new QListWidgetItem();
QSize size = ITEM->sizeHint();
ITEM->setSizeHint(QSi
控件类 控件名 中文名
QListWidget List Widget 列表单元控件
QTreeWidget Tree Widget 树形单元控件
QTableWidget Table Widget...
QPushButton *editBtn=new QPushButton;
connect(editBtn, SIGNAL(clicked()), this, SLOT(slot_onClickModify()));
QPushButton *deleteBtn=new QPushButton(
//一、QListWidgetlist_widget = new QListWidget();//list_widget->resize(200,300);
list_widget->setFixedWidth(300);
//设置item图标大小
list_widget->setIconSize(QSize(50,30));QListWidgetItem *add_item = new QList