gpt4 book ai didi

qt4 - 如何从 QListWidgetItem 获取小部件

转载 作者:行者123 更新时间:2023-12-04 21:16:43 28 4
gpt4 key购买 nike

我做了一个 QListWidget .在 QLisitWidgetItems , 我加了一个 QVBoxLayout .那个QVBoxLayout包含三个 QLabels .如何获取里面的值 QLabel同时点击 QListWidgetItem
//创建 ListView 项(三个QLabels)

Lblnames::Lblnames(QString strid,QString strname,QString strmob,QWidget *parent)
: QWidget(parent)
{
QLabel *lblid=new QLabel(strid);
QLabel *lblname=new QLabel(strname);
QLabel *lblnumber=new QLabel(strmob);

lblid->setFont(QFont("Times", 1));
lblname->setFont(QFont("Times", 12, QFont::Bold));

lblid->hide();

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(lblid);
layout->addWidget(lblname);
layout->addWidget(lblnumber);
setLayout(layout);
}

//创建列表
listWidget=new QListWidget();
for(int i=0;qry.next();i++)
{
qDebug()<<QString("%1").arg( qry.value(1).toString());
Lblnames *lblnames = new Lblnames(QString("%1").arg( qry.value(0).toString()),QString("%1").arg( qry.value(1).toString()),QString("%1").arg( qry.value(2).toString()));
item = new QListWidgetItem();
item->setSizeHint(QSize(0,60));
item->setFont(QFont("Arial", 1));
listWidget->addItem(item);
listWidget->setItemWidget(item,lblnames);

}

最佳答案

首先,您需要向 LblNames 添加方法以获取标签文本。然后
将 3 个 Qlabel 声明为 LblNames 类的成员变量。

QString LblNames::getLabelId()
{
return lblid->text();
}


QListItemWidget* item = listWidget->itemAt(index);
LblNames* widget = dynamic_cast<LblNames*>( listWidget->itemWidget(item) );
widget->getLabelId();/*Add these to LblNames class first*/
widget->getLabelText();
你应该使用谷歌做这样的事情。 dynamic_cast 用于从父类(super class)转换到其子类之一。

关于qt4 - 如何从 QListWidgetItem 获取小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com