Qt-网易云音乐界面实现-6 迷你个人中心实现

这个界面除了麻烦耗时,没有啥技术含量。暂时我也就把它称为迷你个人中心,因为后面还有一个个人中心了。

先看下完成品

 

左侧是我的,右侧是原生

个人感觉还可以吧,哈哈哈。给我自己奖励一个鸡腿。

看下头文件

#ifndef PERSONFORM_H
#define PERSONFORM_H
 
#include <QWidget>
#include <QPaintEvent>
#include <QPainter>
namespace Ui {
class PersonForm;
}
 
class PersonForm : public QWidget
{
    Q_OBJECT
 
public:
    explicit PersonForm(QWidget *parent = 0);
    ~PersonForm();
protected:
    void paintEvent(QPaintEvent *event);
private slots:
    void on_pushButton_person_head_image_clicked();
 
    void on_pushButton_clicked();
 
    void on_pushButton_sign_clicked();
 
    void on_pushButton_fans_clicked();
 
    void on_pushButton_attention_clicked();
 
    void on_pushButton_dynamic_clicked();
 
    void on_pushButton_mymember_clicked();
 
    void on_pushButton_dengji_clicked();
 
    void on_pushButton_shop_clicked();
 
    void on_pushButton_person_infor_clicked();
 
    void on_pushButton_bend_clicked();
 
    void on_pushButton_off_clicked();
 
private:
    Ui::PersonForm *ui;
};
 
#endif // PERSONFORM_H

  下面是源文件代码

#include "personform.h"
#include "ui_personform.h"
#include <QDebug>
PersonForm::PersonForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::PersonForm)
{
    ui->setupUi(this);
}
 
PersonForm::~PersonForm()
{
    delete ui;
}
 
void PersonForm::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    QPainter painter_mainback(this);
    painter_mainback.drawPixmap(0,0,this->width(),this->height(),QPixmap("./images/Personform/mainback.png"));
    ui->pushButton_person_head_image->setMask(QRegion(0,0,40,40,QRegion::Ellipse));     //设置头像遮罩
}
/*
 * 头像点击按钮
 */
void PersonForm::on_pushButton_person_head_image_clicked()
{
    qDebug()<<"头像按钮点击";
}
/*
 * 个人名字点击效果
 */
void PersonForm::on_pushButton_clicked()
{
    qDebug()<<"用户名字点击";
}
/*
 * 签到按钮槽函数
 */
void PersonForm::on_pushButton_sign_clicked()
{
    qDebug()<<"签到按钮点击";
}
/*
 * 粉丝按钮按下
 */
void PersonForm::on_pushButton_fans_clicked()
{
    qDebug()<<"粉丝按钮点击";
}
/*
 * 关注按钮按下
 */
void PersonForm::on_pushButton_attention_clicked()
{
    qDebug()<<"关注按钮点击";
}
/*
 * 动态按钮按下
 */
void PersonForm::on_pushButton_dynamic_clicked()
{
    qDebug()<<"动态按钮点击";
}
/*
 * 我的会员点击按钮
 */
void PersonForm::on_pushButton_mymember_clicked()
{
    qDebug()<<"我的会员按钮点击";
}
/*
 * 等级按钮
 */
void PersonForm::on_pushButton_dengji_clicked()
{
    qDebug()<<"等级按钮点击";
}
/*
 * 商城按钮
 */
void PersonForm::on_pushButton_shop_clicked()
{
    qDebug()<<"商城按钮点击";
}
/*
 * 个人信息按钮设置
 */
void PersonForm::on_pushButton_person_infor_clicked()
{
    qDebug()<<"个人信息设置按钮点击";
}
/*
 * 绑定社交账号按钮
 */
void PersonForm::on_pushButton_bend_clicked()
{
    qDebug()<<"绑定社交账号按钮点击";
}
/*
 * 退出登录按钮
 */
void PersonForm::on_pushButton_off_clicked()
{
    qDebug()<<"退出登录按钮点击";
}

  

 整个迷你个人中心布局

那么怎么调出这个界面了,看下主窗口调用函数

/*
 * 个人信息按钮
 */
void MainWindow::on_pushButton_people_clicked()
{
    if(personform)
    {
        if(personform->isHidden())
        {
            personform->show();
        }
        else
        {
            personform->hide();
        }
    }
    else
    {
        personform = new PersonForm(this);
        personform->setGeometry(588,40,267,367);
        personform->raise();                //提升显示层数
        personform->show();
    }
 
}

  

这里的大部分美化都是在Qss文件中完成的,下面看下Qss中文件的实现代码

/*迷你个人中心头像按钮*/
QPushButton#pushButton_person_head_image
{
	border-image:url(images/pretty_girl.png);	
}
QPushButton::hover#pushButton_person_head_image
{
	border-image:url(images/pretty_girl.png);
}
QPushButton::pressed#pushButton_person_head_image
{
	border-image:url(images/pretty_girl.png);
}
/*会员表示*/
QLabel#label_user_member_icon
{
	border-image:url(images/Personform/user_nember.png);
}
/*迷你个人中心文本*/
QLabel#label_user_name
{
	color: rgb(175, 175, 175);
}
/*个人中心按钮*/
QPushButton#pushButton
{
	background:#00FFFFFF;
}
QPushButton::hover#pushButton
{
	background:#00FFFFFF;
}
QPushButton::pressed#pushButton
{
	background:#00FFFFFF;
}
/*迷你个人中签到按钮*/
QPushButton#pushButton_sign
{
	border-image:url(images/Personform/btn_tiandao_n.png);	
}
QPushButton::hover#pushButton_sign
{
	border-image:url(images/Personform/btn_tiandao_h.png);
}
QPushButton::pressed#pushButton_sign
{
	border-image:url(images/Personform/btn_tiandao_n.png);
}
 
/*迷你个人中动态按钮*/
QPushButton#pushButton_dynamic
{
	background:#00FFFFFF;
	color: rgb(130,131,133);	
}
QPushButton::hover#pushButton_dynamic
{
	background:#00FFFFFF;
	color: rgb(255,255,255);
}
QPushButton::pressed#pushButton_dynamic
{
	background:#00FFFFFF;
	color: rgb(130,131,133);	
}
/*迷你个人中心关注按钮*/
QPushButton#pushButton_attention
{
	background:#00FFFFFF;
	color: rgb(130,131,133);	
}
QPushButton::hover#pushButton_attention
{
	background:#00FFFFFF;
	color: rgb(255,255,255);
}
QPushButton::pressed#pushButton_attention
{
	background:#00FFFFFF;
	color: rgb(130,131,133);	
}
/*迷你个人中心粉丝按钮*/
QPushButton#pushButton_fans
{
	background:#00FFFFFF;
	color: rgb(130,131,133);	
}
QPushButton::hover#pushButton_fans
{
	background:#00FFFFFF;
	color: rgb(255,255,255);
}
QPushButton::pressed#pushButton_fans
{
	background:#00FFFFFF;
	color: rgb(130,131,133);	
}
/*迷你个人中心分割线*/
QLabel#labelline_1
{
	background: rgb(55, 57, 61);
}
QLabel#labelline_2
{
	background: rgb(55, 57, 61);
}
QLabel#labelline_3
{
	background: rgb(55, 57, 61);
}
/*迷你个人中心关注文本*/
QLabel#label_attention
{
	color: rgb(255, 255, 255);
}
/*迷你个人中心动态文本*/
QLabel#label_dynamic
{
	color: rgb(255, 255, 255);
}
/*迷你个人中心粉丝文本*/
QLabel#label_fans
{
	color: rgb(255, 255, 255);
}
/*迷你个人中心我的会员按钮*/
QPushButton#pushButton_mymember
{
	background:#00393b3e;	
}
QPushButton::hover#pushButton_mymember
{
	background:#55393b3e;
	border-width:0;
	border-color:rgb(255,132,0,0);
	border-style: solid;
	border-radius: 0px;
}
QPushButton::pressed#pushButton_mymember
{
	background:#00FFFFFF;	
}
/*迷你个人中心我的会员头像*/
QLabel#label_my_menber
{
	border-image:url(images/Personform/user_nember_h.png);
}
/*迷你个人中心我的会员文本*/
QLabel#label_my_member
{
	color: rgb(175, 175, 175);
}
/*迷你个人中心我的会员时间文本*/
QLabel#label_my_member_time
{
	color: rgb(95, 95, 99);
}
/*迷你个人中心我>文本*/
QLabel#label_L_1
{
	color: rgb(95, 95, 99);
}
QLabel#label_L_2
{
	color: rgb(95, 95, 99);
}
/*迷你个人中心等级按钮*/
QPushButton#pushButton_dengji
{
	background:#00393b3e;	
}
QPushButton::hover#pushButton_dengji
{
	background:#55393b3e;
	border-width:0;
	border-color:rgb(255,132,0,0);
	border-style: solid;
	border-radius: 0px;
}
QPushButton::pressed#pushButton_dengji
{
	background:#00FFFFFF;	
}
/*迷你个人中心商城按钮*/
QPushButton#pushButton_shop
{
	background:#00393b3e;	
}
QPushButton::hover#pushButton_shop
{
	background:#55393b3e;
	border-width:0;
	border-color:rgb(255,132,0,0);
	border-style: solid;
	border-radius: 0px;
}
QPushButton::pressed#pushButton_shop
{
	background:#00FFFFFF;	
}
/*迷你个人中心个人信息按钮*/
QPushButton#pushButton_person_infor
{
	background:#00393b3e;	
}
QPushButton::hover#pushButton_person_infor
{
	background:#55393b3e;
	border-width:0;
	border-color:rgb(255,132,0,0);
	border-style: solid;
	border-radius: 0px;
}
QPushButton::pressed#pushButton_person_infor
{
	background:#00FFFFFF;	
}
/*迷你个人中心绑定按钮*/
QPushButton#pushButton_bend
{
	background:#00393b3e;	
}
QPushButton::hover#pushButton_bend
{
	background:#55393b3e;
	border-width:0;
	border-color:rgb(255,132,0,0);
	border-style: solid;
	border-radius: 0px;
}
QPushButton::pressed#pushButton_bend
{
	background:#00FFFFFF;	
}
/*迷你个人中心关闭按钮*/
QPushButton#pushButton_off
{
	background:#00393b3e;	
}
QPushButton::hover#pushButton_off
{
	background:#55393b3e;
	border-width:0;
	border-color:rgb(255,132,0,0);
	border-style: solid;
	border-radius: 0px;
}
QPushButton::pressed#pushButton_off
{
	background:#00FFFFFF;	
}
/*迷你个人中心等级头像*/
QLabel#label_my_dengji
{
	border-image:url(images/Personform/dengji.png);
}
/*迷你个人中心等级文本*/
QLabel#label_my_dengji_1
{
	color: rgb(175, 175, 175);
}
/*迷你个人中心我的会员时间文本*/
QLabel#label_my_dengji_2
{
	color: rgb(95, 95, 99);
}
/*商城*/
QLabel#label_my_shop
{
	border-image:url(images/Personform/shop.png);
}
QLabel#label_my_shop2
{
	color: rgb(175, 175, 175);
}
QLabel#label_L_3
{
	color: rgb(95, 95, 99);
}
/*个人信息设置*/
QLabel#label_my_setup
{
	border-image:url(images/Personform/setup.png);
}
QLabel#label_my_setup2
{
	color: rgb(175, 175, 175);
}
QLabel#label_L_4
{
	color: rgb(95, 95, 99);
}
/*绑定社交账号*/
QLabel#label_my_bend
{
	border-image:url(images/Personform/bend.png);
}
QLabel#label_my_bend2
{
	color: rgb(175, 175, 175);
}
QLabel#label_L_5
{
	color: rgb(95, 95, 99);
}
QLabel#label_my_bend_3
{
	border-image:url(images/Personform/xinlang.png);
}
QLabel#label_my_bend_4
{
	border-image:url(images/Personform/qita.png);
}
/*退出登录*/
QLabel#label_my_off
{
	border-image:url(images/Personform/off.png);
}
QLabel#label_my_off2
{
	color: rgb(175, 175, 175);
}

  

posted @ 2018-07-08 16:34  DreamDog  阅读(869)  评论(0编辑  收藏  举报