相关文章推荐
曾经爱过的蜡烛  ·  Unity Math ...·  5 月前    · 
开朗的键盘  ·  javascript - How to ...·  1 年前    · 
咆哮的小蝌蚪  ·  javascript - ...·  1 年前    · 
// 在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-&gt;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-&gt;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
QListWidget *listWidget = new QListWidget; QWidget *widget = new QWidget; QListWidgetItem *item = new QListWidgetItem(listWidget ); listWidget->addItem(nitem); 非常感谢你分享这篇博客!C++的-O2优化确实可以提高程序的执行效率,但有时候也会出现意外的问题。期待你分享更多关于C++的技术文章。 针对你这篇博客所涉及的问题,我建议你可以写一篇关于C++优化技巧和注意事项的文章。可以探讨一下-O2优化的原理和适用场景,同时也可以分享一些优化过程中可能出现的问题和解决方法。希望可以帮助更多的C++开发者提高代码效率。期待你的下一篇精彩文章! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。 详解-C语言可变参数-va-list和-vsnprintf及printf实现 阿卡基YUAN: 是csdn改了背景,一开始不是这样的,有空重新弄下吧