添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
// 在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("内容已修改"));
itemAt方法根据参数给定位置返回列表部件中的项。对应语法如下:
QListWidgetItem itemAt(QPoint p)
QListWidgetItem itemAt(int x, int y)
注意:位置对应坐标是相对列表部件的视口的,关于视口请参考《PyQt(Python+Qt...
                                    显示文件夹下的图片这个功能,这里是增加了一个按钮作为响应的,通过信号和槽函数使另一个QListWidget显示图片,当然也可以直接使用QListWidget里是函数直接做跳转。这里使用了两个QListWidget,左边的用做显示文件信息,右边的做显示文件夹下的图片,这里的图片是保存的拍摄视频的第一帧,通过双击显示图片,点机打开视频可以查看视频。这里的按钮函数逻辑是:清空窗口,获取选中的成员信息,访问该成员文件夹下内容,遍历所有的图片文件,保存到容器中,在显示容器中内容。本期文章就到这了下期见了!
                                    我这里用的QListWidegtItem,为了点击QListWidget对应内容获取路径,进行刷新操作,类似需求还有很多,故需要给item存储数据方便使用。
常见接口:
存储数据:setData(); setItemData(); setUserData();
获取数据:data(); itemData(); userData();
首先是最简单的使用setData()单独存储已有数据类型结构
QListWidget* list_widget = new QListWidget;
// 添加item时
                                    Qt提供QListWidget类列表框控件用来加载并显示多个列表项。QListWidgetItem类就是列表项类。一般列表框控件中的列表项有两种加载方式:
一种是由用户手动添加的列表项,比如音乐播放器中加载音乐文件的文件列表,每一个音乐文件都是一个列表项。
对于这种列表项,用户可以进行增加、删除、单击以及双击等操作。
一种是由程序员事先编写好,写在程序中供用户选择的列表项,比如餐厅的电子菜单,每一道菜对应一个列表项。
对于这种列表项,用户可以进行单机和双击操作(增加和删除操作也是可以进行的,但是一般的点菜系
1 应用场景
在QListWidget中插入自定义的图片,并且按照相似度进行自动排序。和QListWidget中插入QListWidgetItem,然后调用setItemWidge...
Qt 中用于项(Item)处理的组件有两类,一类是 Item Views,包括 QListView、QTreeView、 QTableView、QColumnView 等;另一类是 Item Widgets,包括 QListWidget、QTreeWidget 和 QTable WidgetQListWidget其实是QListView的遍历类,QListView 是基于模型/视图(Model/View)结构,视图(View)与模型数据(Model Data)关联实现数据的显示和编辑;而QLis
    void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
    void dragEnterEvent(QDragEnterEvent*event) Q_DECL_OVERRIDE;
    void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
这里要注意,如果少了dragMoveEvent的话dropEvent不会被激发。
void MyListW
QListWidget类提供基于项目列表的小部件。
QListWidget提供类似于QListView提供的列表视图,但具有用于添加和删除项的经典的界面。 QListWidget使用内部模型来管理列表中的每个QListWidgetItem...
QListView *pListView = new QListView();
QStringListModel *pStringlistModel = new QStringListModel();
pStringl
                                    有时间会遇到这样的需求,显示scene上的所有节点,或者某个区域的节点,有人推荐使用QGraphics::fitInView这个函数,但是这个函数会根据你所给的QRect的大小来进行横向或者纵向的拉升,会使item变形,不建议使用。
在网上看到这样的办法,推荐使用:
float calc_full_scale()
 float dx = viewport()->geometry...