Qt-網易雲音樂界面實現-7 消息中心實現,主要是QListWidget 自定義Item 和QTabwidget使用


最近寫的有點煩躁, 感覺內容真的很多!很多!很多。

目前真的想知道網易官方在出這款產品是,用了多少人和多長時間。

 

今天寫的這個消息中心,有點糙,只是原理實現了沒有完全復制過來,心里有團火,不想寫了。

看下效果吧

其實這個消息中心的內容到時很簡單,最底層一個Qtabwidgte,構成@我、私信、評論和通知界面

每個界面里面嵌套一個QListWidget,完成消息內容的顯示

每個QListWidget的Item都是一個自定義的Item

目前我只寫了私信的界面,后面因為都是重復工作,就不想寫了。但是這樣就會錯過很多細節的東西。

上代碼

這是Item界面布局。

代碼部分,目前就是這只兩個mask

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

  

整個消息界面如下圖所示

沒有過多的內容

看下代碼部分

#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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM