QListWidget

北战南征 提交于 2020-01-03 23:09:11

QListWidget使用:

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //插入数据的集中方法
    ui->listWidget->clear();  //清空连表控件
    QListWidgetItem *Item1=new QListWidgetItem ; //针对每一行操作
    Item1->setText("测试数据1");
    ui->listWidget->insertItem(0,Item1);
    new QListWidgetItem("test item2",ui->listWidget);
    ui->listWidget->addItem("test item3");

    //插入包含图标的数据
    QListWidgetItem *itemIcon=new QListWidgetItem;
    itemIcon->setText("test item icon4");
    itemIcon->setIcon(QIcon("1.png"));//debug 为当前工作目录
    ui->listWidget->addItem(itemIcon);

    //遍历列表
    for(int i=0;i<ui->listWidget->count();i++)
    {
        qDebug()<<ui->listWidget->item(i)->text();
    }
    //设置可编辑状态
    ui->listWidget->setEditTriggers(QAbstractItemView::AllEditTriggers); //设置所有时间都激发编辑 上级 选择 选项变化
    for(int i=0;i<ui->listWidget->count();i++)
    {
        ui->listWidget->item(i)->setFlags(Qt::ItemIsEditable|Qt::ItemIsSelectable|Qt::ItemIsEnabled);//可打印测试
    }

}

Widget::~Widget()
{
    delete ui;
}

//Print 点击槽函数
void Widget::Click()
{
    for(int i=0;i<ui->listWidget->count();i++)
    {
        qDebug()<<ui->listWidget->item(i)->text();
    }
}

//Sort 点击槽函数  列表排序
void Widget::Sort()
{
    static bool isDesc=false;
    if(!isDesc)
    {
        ui->listWidget->sortItems(Qt::DescendingOrder);
    }
    else
    {
        ui->listWidget->sortItems(Qt::AscendingOrder);
    }

    isDesc=!isDesc;
}


//QListWidget信号事件
/*
void  currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
void  currentRowChanged(int currentRow)
void  currentTextChanged(const QString &currentText)
void itemActivated(QListWidgetItem *item) 双击激活
void  itemChanged(QListWidgetItem *item)  内容改变 焦点移开,回车确认
void itemClicked(QListWidgetItem *item)  鼠标松开
void itemDoubleClicked(QListWidgetItem *item)  鼠标左右键都有效
void itemEntered(QListWidgetItem *item)  鼠标移上去  鼠标捕获打开  //ui->listWidget->setMouseTracking(true);
void itemPressed(QListWidgetItem *item)  鼠标左右键按下
void itemSelectionChanged()   
*/

在列表中显示其他Widget控件

 QLineEdit *e=new QLineEdit("Test Line");  //
   ui->listWidget->setItemWidget(ui->listWidget->item(2),e);

  //显示QSpinBox
 QSpinBox *sPinBox=new QSpinBox();
   ui->listWidget->setItemWidget(ui->listWidget->item(3),sPinBox);

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!