• QT之QListWidget的介绍


    1、成员函数介绍

    1)QListWidget(QWidget *parent = nullptr)
    构造函数,创建一个新的QListWidget对象。

    2)void addItem(const QString &label)
    在列表末尾添加一个项目,项目标签为label。

    3)void addItem(QListWidgetItem *item)
    在列表末尾添加一个项目,项目为item。

    4)void insertItem(int row, const QString &label)
    在指定的行插入一个项目,项目标签为label。

    5)void insertItem(int row, QListWidgetItem *item)
    在指定的行插入一个项目,项目为item。

    6)void removeItemWidget(QWidget *widget)
    从列表中移除指定的widget。

    7)int rowCount() const
    返回列表中的行数。

    8)QListWidgetItem *item(int row) const
    返回指定行的项目。

    9)QListWidgetItem *takeItem(int row)
    移除并返回指定行的项目。

    10)int currentRow() const
    返回当前选中的行的索引。

    11)void setCurrentRow(int row)
    设置当前选中的行。

    12)QListWidgetItem *currentItem() const
    返回当前选中的项目。

    13)void setCurrentItem(QListWidgetItem *item)
    设置当前选中的项目。

    14)void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
    按照指定的顺序对列表中的项目进行排序。

    15)void clear()
    移除列表中的所有项目。

    16)void setSelectionMode(QAbstractItemView::SelectionMode mode)
    设置列表的选择模式。

    17)QAbstractItemView::SelectionMode selectionMode() const
    返回列表的当前选择模式。

    注意,对于大部分函数来说,如果列表为空或者索引超出范围,它们将不会有任何效果。此外,对列表的更改可能会触发一些信号,如itemChanged、itemClicked等,你可以通过连接这些信号来响应用户的交互。

    2、例子

    显示图片和按钮的例子

    QListWidget中显示图片和按钮,你需要创建自定义的列表项。QListWidget本身并不直接支持这种功能,但是你可以通过创建自定义的QWidget,然后将它们添加到QListWidget中来实现。

    #include   
    #include   
    #include   
    #include   
    #include   
    #include   
    #include   
    #include   
    #include   
      
    class CustomItem : public QWidget {  
    public:  
        CustomItem(const QString& text, const QPixmap& pixmap, QWidget* parent = nullptr)   
            : QWidget(parent), textLabel(new QLabel(text, this)), pixmapLabel(new QLabel(this)), button(new QPushButton("Button", this)) {  
            QHBoxLayout* layout = new QHBoxLayout(this);  
            layout->addWidget(textLabel);  
            layout->addWidget(pixmapLabel);  
            layout->addWidget(button);  
            setLayout(layout);  
            pixmapLabel->setPixmap(pixmap);  
        }  
      
    private:  
        QLabel* textLabel;  
        QLabel* pixmapLabel;  
        QPushButton* button;  
    };  
      
    int main(int argc, char *argv[])  
    {  
        QApplication app(argc, argv);  
        QListWidget listWidget;  
        QPixmap pixmap("path_to_your_image.jpg"); // Replace with the actual path to your image.  
        listWidget.addItem(new QListWidgetItem(new CustomItem("Item 1", pixmap)));  
        listWidget.addItem(new QListWidgetItem(new CustomItem("Item 2", pixmap)));  
        listWidget.addItem(new QListWidgetItem(new CustomItem("Item 3", pixmap)));  
        listWidget.show();  
        return app.exec();  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    在这个例子中,我创建了一个名为CustomItem的自定义QWidget类,它包含一个QLabel用于显示文本,一个QLabel用于显示图片,以及一个QPushButton。然后,我创建了一个QListWidget,并使用这个自定义的部件创建了三个列表项。

  • 相关阅读:
    PTA 甲级 1044 Shopping in Mars
    python - random模块随机数常用方法
    2023最新最热ChatGPT/GPT-4科研论文写作与项目开发及AI绘图实战
    BigDecimal 类型的累加操作
    华纳云:轻量云服务器怎么安装SSL证书
    选好冒烟测试用例,为进入QA的制品包把好第一道关
    IO多路复用技术(二)
    Maven右侧子项目maven变成灰色
    计算机考研408高分复习规划-如何复习408才能得高分
    如何衡量软件系统的复杂度(一)
  • 原文地址:https://blog.csdn.net/techenliu/article/details/132991577