Qt-网易云音乐界面实现-7 消息中心实现,主要是QListWidget 自定义Item 和QTabwidget使用

简介: 最近写的有点烦躁, 感觉内容真的很多!很多!很多。目前真的想知道网易官方在出这款产品是,用了多少人和多长时间。

今天写的这个消息中心,有点糙,只是原理实现了没有完全复制过来,心里有团火,不想写了。

看下效果吧image.png

其实这个消息中心的内容到时很简单,最底层一个Qtabwidgte,构成@我、私信、评论和通知界面


每个界面里面嵌套一个QListWidget,完成消息内容的显示


每个QListWidget的Item都是一个自定义的Item


目前我只写了私信的界面,后面因为都是重复工作,就不想写了。但是这样就会错过很多细节的东西。


上代码image.png

 ui->label_read_point->setMask(QRegion(0,0,10,10,QRegion::Ellipse));
    ui->label_sixin_head->setMask(QRegion(0,0,50,50,QRegion::Ellipse));

整个消息界面如下图所示

image.png

没有过多的内容

看下代码部分

#include "messageform.h"
#include "ui_messageform.h"
MessageForm::MessageForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MessageForm)
{
    ui->setupUi(this);
    ui->tabWidget->setTabText(0,"@我");
    ui->tabWidget->setTabText(1,"私信");
    ui->tabWidget->setTabText(2,"评论");
    ui->tabWidget->setTabText(3,"通知");
    ui->listWidget_sixin->setStyleSheet("QListWidget{color:rgb(173,175,178); background:rgb(25,27,31,0);border:0px solid gray;}"
                                        "QListWidget::Item{height:30px;border:0px solid gray;}"
                                        "QListWidget::Item:hover{color:rgb(255,255,255);background:transparent;border:0px solid gray;}"
                                        "QListWidget::Item:selected{ color:rgb(255,255,255);border:0px solid gray;}"
                                        "QListWidget::Item:selected:active{background:#00FFFFFF;color:#FFFFFF;border-width:0;}");
    sixinItem = new MessageForm_SiXin_Item;
    MessageForm_SiXin_Item *sixinItem1 = new MessageForm_SiXin_Item;
    QListWidgetItem *item = new QListWidgetItem(ui->listWidget_sixin);
    ui->listWidget_sixin->addItem(item);
    ui->listWidget_sixin->setItemWidget(item,sixinItem);
    item->setSizeHint(QSize(0,60));
    QListWidgetItem *item1 = new QListWidgetItem(ui->listWidget_sixin);
    ui->listWidget_sixin->addItem(item1);
    ui->listWidget_sixin->setItemWidget(item1,sixinItem1);
    item1->setSizeHint(QSize(0,60));
}
MessageForm::~MessageForm()
{
    delete ui;
}
/*
 * 绘制背景
 */
void MessageForm::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    QPainter painter_mainback(this);
    painter_mainback.drawPixmap(0,0,this->width(),this->height(),QPixmap("./images/Messageform/mainback.png"));
}

这部分代码功能就是简单绘制了背景,设置了QListWidget的样式,和为QListWidget添加两个Item



希望后面的时间可以好好磨练自己,如果那天那个网友实现了这个消息部分的,可以联系我,给我分享一下,我是不想写了


另外,在后面规划从底层开始写一套智能家居的软件出来,有兴趣的可以加群一起努力。群号786235246


目录
相关文章
|
12天前
(8)Qt中的自定义信号
本文介绍了如何在Qt框架中创建和使用自定义信号,并通过一个父子窗口切换的示例来展示自定义信号的实现和应用。
39 3
(8)Qt中的自定义信号
|
2月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
61 0
|
12天前
(7)Qt中的自定义槽(函数)
这篇文章介绍了在Qt中如何定义和使用自定义槽函数,包括类成员函数、静态类成员函数、全局函数和lambda表达式作为槽函数的示例,以及使用lambda表达式时的注意事项。
15 2
(7)Qt中的自定义槽(函数)
|
9天前
|
编译器
【项目开发】QT简单练习之QQ登录界面模仿
为了进一步加深对QT开发的理解,在学习完基础操作之后要进行一个简单的练习。
|
2月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
52 4
|
2月前
【qt】自定义对话框(2)
【qt】自定义对话框(2)
21 0
|
2月前
【qt】自定义对话框(1)
【qt】自定义对话框(1)
19 0
|
3月前
|
C++
Qt中的信号与槽如何学习?(包括自定义信号)这篇文章告诉你
以现实中的事件来举例的话,例如有两把不同颜色的信号枪,分别是红色,绿色,打响不通颜色的信号枪会触发不同的槽发生,比如说打响红色这个人就跑步,绿色就走步,但是还有一个很重要的机制,那就是连接,我们需要把信号枪去跟这个人的动作连接起来。 如果上面理解没问题的话我们可以把信号和槽看成两个工具,我们最重要的是如何去把这两个工具连接起来。 它的作用可以让我们更加灵活的去使用不同窗口间的切换以及某些事件的连接。
|
5月前
|
C++
【qt】自定义代理类
【qt】自定义代理类
52 0
|
5月前
|
搜索推荐
【qt】自定义界面类
【qt】自定义界面类
48 0