zoukankan      html  css  js  c++  java
  • 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-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-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-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-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-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-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);
    }
    

      

  • 相关阅读:
    Java基础(十四)——API(Calendar类、System类、StringBuilder类、包装类)
    异常
    Java基础(十三)——权限修饰符和内部类
    知识点总结
    Java基础(十二)— —多态
    Java基础(十一)— —继承、抽象类和接口
    java基础(十)——继承
    小程序外部向组件内部传递externalClasses -- 传入样式wxss
    小程序组件交互 -- 传入js
    promise封装小程序的请求类(request,清爽易懂)
  • 原文地址:https://www.cnblogs.com/DreamDog/p/9280441.html
Copyright © 2011-2022 走看看