QT学习笔记10

Q List Widget (一) 初次使用

常用属性
Demo 演示

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 动态添加项
    ui->listWidget->addItem("张三");
    ui->listWidget->addItem("李四");
    ui->listWidget->addItem("王五");

    // 移除项
    ui->listWidget->takeItem(0);

    // 插入项,从项前面插入
    ui->listWidget->insertItem(0, "张三");
}

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

void Widget::on_listWidget_currentRowChanged(int currentRow)
{
    //    qDebug() << currentRow << endl;
    qDebug() << "下标是" << currentRow << "项内容:" <<
    ui->listWidget->item(currentRow)->text() << endl;
}

QListWidget(二)仿 QQ 好友列表制作

 

 

 该界面用到的样式表

QLabel{background-color:darkgray}
QLabel{color:darkgray;font-size:20px}

 

QPushButton{border-image:url(:/image/01_status_run.png)}
QLineEdit{background:transparent;border:none}
QListWidget::item{height:65px}
QListWidget::item::selected{background-color:rgb(200,200,200)}
QListWidget::item::hover{background-color:rgb(220,220,220)}

qqitem.h

#ifndef QQITEM_H
#define QQITEM_H

#include <QWidget>

namespace Ui {
class QQitem;
}

class QQitem : public QWidget {
    Q_OBJECT

public:

    explicit QQitem(QString  icon,
                    bool     flag,
                    QString  name,
                    QWidget *parent = nullptr);
    ~QQitem();

private:

    Ui::QQitem *ui;
};

#endif // QQITEM_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

qqitem.cpp

#include "qqitem.h"
#include "ui_qqitem.h"

QQitem::QQitem(QString icon, bool flag, QString name, QWidget *parent) :
    QWidget(parent),
    ui(new Ui::QQitem)
{
    ui->setupUi(this);
    QImage image(icon);

    ui->icon->setPixmap(QPixmap::fromImage(image.scaled(ui->icon->width(),
                                                        ui->icon->height()))); //
                                                                               // 跟随控件大小,显示图片,添加路径


    QImage image2(":/image/01_status_run.png");


    ui->phone->setPixmap(QPixmap::fromImage(image2.scaled(ui->phone->width(),
                                                          ui->phone->height()))); //
                                                                                  // 添加路径,跟随控件大小,显示图片

    ui->phone->setVisible(flag);                                                  //
                                                                                  // 控制是否显示手机图标

    ui->name->setText(name);
}

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

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include "qqitem.h"
#include "QListWidgetItem"
class QQitem;
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setLayout(ui->verticalLayout);
    QQitem *qqitem = new QQitem(":/image/01_pushButton_start.png", true, "疯子兰特");
    QQitem *qqitem1 = new QQitem(":/image/01_status_alarm.png", true, "疯子兰特1");
    QQitem *qqitem2 = new QQitem(":/image/01_status_nor.png", true, "疯子兰特2");
    QQitem *qqitem3 = new QQitem(":/image/01_status_run.png", true, "疯子兰特3");
    QQitem *qqitem4 = new QQitem(":/image/02_enquiry.png", true, "疯子兰特4");
    QListWidgetItem *item0 = new QListWidgetItem;
    QListWidgetItem *item1 = new QListWidgetItem;
    QListWidgetItem *item2 = new QListWidgetItem;
    QListWidgetItem *item3 = new QListWidgetItem;
    QListWidgetItem *item4 = new QListWidgetItem;
    ui->listWidget->addItem(item0);
    ui->listWidget->addItem(item1);
    ui->listWidget->addItem(item2);
    ui->listWidget->addItem(item3);
    ui->listWidget->addItem(item4);
    ui->listWidget->setItemWidget(item0, qqitem);
    ui->listWidget->setItemWidget(item1, qqitem1);
    ui->listWidget->setItemWidget(item2, qqitem2);
    ui->listWidget->setItemWidget(item3, qqitem3);
    ui->listWidget->setItemWidget(item4, qqitem4);
}

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

最终效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值