Qt与电脑管家4

这篇具有很好参考价值的文章主要介绍了Qt与电脑管家4。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

折线图:

Qt与电脑管家4,java,前端,javascript

#ifndef LINE_CHART_H
#define LINE_CHART_H

#include <QWidget>
#include <QPainter>
#include "circle.h"
class line_chart : public QWidget
{
    Q_OBJECT
public:
    explicit line_chart(QWidget *parent = nullptr);
protected:
    void paintEvent(QPaintEvent *event) override;
private:
    QVector<int> h;
    int max,min,sum;
signals:

};

#endif // LINE_CHART_H
#include "line_chart.h"
#include <QDebug>
line_chart::line_chart(QWidget *parent) : QWidget(parent)
{
    sum=0;
    for(int i=0;i<30;i++)
    {
        if(i%5==0)h<<i;
        else{
            h<<0;
        }
    }

    //最大值,最小值
    for(int i=0;i<30;++i)
    {
        if(i==0){
            max=h.at(i);
            min=h.at(i);
        }
        else{
            if(max<h.at(i))max=h.at(i);
            if(min>h.at(i))min=h.at(i);
        }
        sum+=h.at(i);
    }
}

void line_chart::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing, true);

    //画背景
    painter.save();
    painter.setPen(Qt::NoPen);
    painter.setBrush(QBrush(QColor(255,255,255)));
    painter.drawRect(rect());
    painter.restore();
    //画横线
    painter.save();
    //确定条数
    //4,0:3
    //5,0:4
    int count=max-min-1;
    int x1,x2,y;
    x1=5;
    x2=width()-5;
    y=height()-10;
    int w=(height()-20)/count;
    QPen pen;
    pen.setColor(QColor(214, 223, 255));
    pen.setWidth(1);
    pen.setStyle(Qt::SolidLine);
    painter.setPen(pen);
    for(int i=0;i<count;++i)
    {
        painter.drawLine(x1,y,x2,y);
        y=y-w;
    }

    painter.restore();

    //画蓝色折线
    painter.save();
    double w1=width()-20;
    x1=10;
    double space=w1/(h.count()-1);
    QVector<QLine> lines;
    QPen pen1;
    pen1.setColor(QColor(133, 159, 255));
    pen1.setWidth(2);
    pen1.setStyle(Qt::SolidLine);
    painter.setPen(pen1);

    painter.setBrush(QBrush(QColor(243, 246, 255)));
    double h1=(height()-20)/(max-min);//每一小块的长度
    painter.translate(0,height()-10-10);

    for(int i=0;i<h.count()-1;++i)
    {
        double y1,y2;
        y1=(h.at(i)-min)*h1;//高度
        y2=(h.at(i+1)-min)*h1;//高度
        lines.append(QLine(x1,-y1,x1+space,-y2));
        x1+=space;
    }
    painter.drawLines(lines);
    painter.restore();

}

窗体控件透明度

Qt与电脑管家4,java,前端,javascript

QT 窗体控件的透明度设置(三种方法)_qt paint setbrush 透明_chenyazhou88的博客-CSDN博客

    opacityEffect=new QGraphicsOpacityEffect(this);
    this->setGraphicsEffect(opacityEffect);
    opacityEffect->setOpacity(0.2);

自定义按钮

Qt与电脑管家4,java,前端,javascript

#ifndef BTN5_H
#define BTN5_H

#include <QPushButton>
#include "btn1.h"
class btn5 : public btn1
{
    Q_OBJECT
public:
    btn5(QWidget * parent = nullptr);
    void set_normal_icon(QString icon);
    void init(QSize size,QSize hover_size);
protected:
    void paintEvent(QPaintEvent *) override;
    void enterEvent(QEvent *event) override;
    void leaveEvent(QEvent *event) override;
private:
    QString normal_icon;
    QSize icon_size,size,hover_size;
    bool hover;
signals:
    void mouse_enter();
    void mouse_leave();
};

#endif // BTN5_H
#include "btn5.h"
#include <QDebug>
#include <QPainter>
#pragma execution_character_set("utf-8")
#pragma execution_character_set("utf-8")
btn5::btn5(QWidget * parent ): btn1(parent)
{
    init(QSize(50,50),QSize(150,50));
    icon_size=QSize(25,25);
}

void btn5::set_normal_icon(QString icon)
{
    normal_icon=icon;
}

void btn5::init(QSize s,QSize hover_s)
{
    size=s;
    hover_size=hover_s;
    QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Fixed);
    sizePolicy1.setHorizontalStretch(0);
    sizePolicy1.setVerticalStretch(0);
    sizePolicy1.setHeightForWidth(this->sizePolicy().hasHeightForWidth());
    this->setSizePolicy(sizePolicy1);
    //宽高
    this->setMinimumSize(size);
    this->setMaximumSize(size);

    hover=false;
}


void btn5::enterEvent(QEvent *event)
{
    Q_UNUSED(event);
    qDebug()<<"进入事件发生";
    hover=true;
    //显示
}

void btn5::leaveEvent(QEvent *event)
{
    Q_UNUSED(event);
    qDebug()<<"离开事件发生";
    hover=false;
    //隐藏
}

void btn5::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing, true);

    QPen pen;
    pen.setColor(QColor(230,230,230));
    pen.setStyle(Qt::SolidLine);
    pen.setWidth(1);
    //透明背景
    painter.save();
    painter.setPen(Qt::NoPen);
    painter.setBrush(QBrush(QColor(255,255,255,0)));
    painter.drawRect(rect());
    painter.restore();

    if(!hover){
        this->setMinimumSize(size);
        this->setMaximumSize(size);
        painter.save();
        //画圆角矩形
        painter.setPen(pen);
        painter.setBrush(QBrush(QColor(255,255,255)));
        double side=qMin(width(),height());
        painter.drawRoundedRect(rect(),side/2,side/2,Qt::AbsoluteSize);
        painter.restore();

        painter.save();
        //画图标
        QPixmap pix(normal_icon);
        pix=pix.scaled(icon_size,Qt::IgnoreAspectRatio);
        painter.translate(width()/2,height()/2);
        QRectF target(-icon_size.width()/2,-icon_size.height()/2,icon_size.width(),icon_size.height());
        QRectF source(0,0,icon_size.width(),icon_size.height());
        painter.drawPixmap(target,pix,source);

        painter.restore();
    }
    else{
        this->setMinimumSize(hover_size);
        this->setMaximumSize(hover_size);

        painter.save();
        //画圆角矩形


        painter.setPen(pen);
        painter.setBrush(QBrush(QColor(255,255,255)));
        double side=qMin(width(),height());
        painter.drawRoundedRect(rect(),side/2,side/2,Qt::AbsoluteSize);
        painter.restore();

        painter.save();
        //画图标
        QPixmap pix(normal_icon);
        pix=pix.scaled(icon_size,Qt::IgnoreAspectRatio);
        //图标所占宽度:与之前一样
        painter.translate(size.width()/2,height()/2);
        QRectF target(-icon_size.width()/2,-icon_size.height()/2,icon_size.width(),icon_size.height());
        QRectF source(0,0,icon_size.width(),icon_size.height());
        painter.drawPixmap(target,pix,source);

        painter.restore();

        //画文字
        painter.save();
        painter.translate(size.width(),height()/2);
        QFont font;
        font.setPointSize(10);
        painter.setFont(font);
        QPen pen;
        pen.setColor(QColor(50,50,50));
        painter.setPen(pen);
        painter.drawText(0,-height()/2,hover_size.width()-size.width(),height(),Qt::AlignLeft | Qt::AlignVCenter,text());
        painter.restore();
    }
}

 阶段性效果图:

Qt与电脑管家4,java,前端,javascript

 文章来源地址https://www.toymoban.com/news/detail-664328.html

到了这里,关于Qt与电脑管家4的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 非小米电脑下载小米电脑管家

    由于 小米电脑管家 现在新增了机型验证,本篇将分享非小米电脑用户如何绕过机型验证安装 小米电脑管家 首先到小米跨端智联官网 https://hyperos.mi.com/continuity 中下载小米电脑管家 打开官网链接后,直接滑动到底部,点击下载 下载完成后,先别急着安装,此时需要下载一个

    2024年04月12日
    浏览(51)
  • 小米电脑管家-非小米电脑安装教程

    如果是小米电脑,直接安装就行了 这里主要讲的是不是小米电脑,怎么去安装? 不是小米电脑就需要 下载免检测机型插件 ,不然安装不了的 需要将补丁文件【wtsapi32.dll】 链接: 百度网盘提取 提取码: 1820 链接: https://pan.baidu.com/s/1hkbNNfGNeSrCxG4rbfukwg?pwd=1820 提取码: 1820 复制这段

    2024年02月05日
    浏览(44)
  • 小米电脑管家 - 手机平板电脑家居互联

            联想电脑安装小米电脑管家实现设备互联         如图,将 小米平板 5 Pro 作为联想笔记本 GeekPro 5000 (这垃圾电脑)的副屏。         可以在小米平板控制笔记本,如图所示 参考:小米电脑管家帮助 (mi.com) 电脑 Redmi Book 16 2024、Redmi Book 14 2024、Redmi Book

    2024年02月03日
    浏览(174)
  • 【小米电脑管家】安装使用教程--非小米电脑

    Xiaomi HyperOS发布后,小米妙享电脑端独立版本也走向终点,最新的【小米电脑管家】将会内置妙享实现万物互联。那么本篇文章将分享非小米电脑用户如何绕过设备识别验证安装使用【小米电脑管家】实现万物互联 安装说明 1.解压文件, 【小米电脑管家_1.0.0.489_0977b577.exe】

    2024年02月04日
    浏览(309)
  • 联想电脑使用“联想电脑管家”之后电脑频繁蓝屏

    蓝屏代码:0x0000003b,0x0000000a,0x0000000a Bug Check String Bug Check Code Caused By Driver Caused By Address Product Name Company File Version Processor Crash Address Stack Address 1 Stack Address 2 Stack Address 3 Computer Name Full Path Processors Count Major Version Minor Version Dump File Size Dump File Time SYSTEM_SERVICE_EXCEPTION 0x0000003b

    2024年02月05日
    浏览(85)
  • 非华为电脑安装华为电脑管家以及注意事项

    非华为电脑是可以安装华为电脑管家的,不过部分功能可能不兼容。值得一提的是,超级终端、多屏协同、文件共享、远程控制等功能大部分电脑是可以使用的,本人在联想ThinkBook 15电脑上完美安装了华为电脑管家。下文介绍非华为电脑安装华为电脑管家的安装方法、注意事

    2024年02月09日
    浏览(42)
  • Lenovo Vantage vs 联想电脑管家

    用户购买联想电脑时,都会预装联想电脑管家,而Lenovo Vantage就是国际版的联想电脑管家。本文介绍2个软件的区别,并给出安装建议。 Lenovo Vantage是国际版的联想电脑管家,界面更加简洁,拥有设置Fn键功能、USB供电、充电模式、充电阈值等功能,可以更新联想官方驱动,但

    2024年02月09日
    浏览(93)
  • 微软电脑管家V2.1公测版正式发布

    微软电脑管家2.1公测版于7月18日发布,从四个核心产品理念“贴近原生、简洁流畅、高效安全、纯净无打扰”出发,通过贴近原生,为用户带来更友好的界面设计,更贴近Windows 11的操作体验;主张简洁流畅,让用户使用一键体检,方便便捷,无惧卡顿;坚守高效安全,整合系

    2024年02月04日
    浏览(59)
  • 管家婆安装导致电脑蓝屏问题解决方案

    安装完管家婆后,电脑蓝屏,重启还是蓝屏,这该怎么办?   导致的原因:因加密狗驱动不适配于Windows10系统,导致电脑蓝屏 修复方案:进入电脑安全模式(怎么进入问度娘)(如果你只是安装完蓝屏,后续不蓝,就不用进入到安全模式,直接进行下述操作),找到管家婆

    2024年02月09日
    浏览(73)
  • 【万物互联支持一碰传、多屏协同】第三方非华为电脑安装华为电脑管家

    华为电脑管家官方版是一款专业的华为笔记本电脑管理工具,从安全防毒到杀毒整理,硬件监控保护等等并对整个电脑进行运行优化,华为电脑管家官方版集全面体检、硬件检测、驱动管理、电源管理、手机管理等多种功能与一身,绝对是一款不容错过的电脑管理软件。 在这之前

    2024年02月12日
    浏览(247)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包