• Qt通用方法及类库3


    函数名

        //设置全局样式
        static void setStyle(QUIWidget::Style style);
        static void setStyle(const QString &qssFile, QString &paletteColor, QString &textColor);
        static void setStyle(const QString &qssFile, QString &textColor,
                             QString &panelColor, QString &borderColor,
                             QString &normalColorStart, QString &normalColorEnd,
                             QString &darkColorStart, QString &darkColorEnd,
                             QString &highColor);
    
        //根据QSS样式获取对应颜色值
        static void getQssColor(const QString &qss, QString &textColor,
                                QString &panelColor, QString &borderColor,
                                QString &normalColorStart, QString &normalColorEnd,
                                QString &darkColorStart, QString &darkColorEnd,
                                QString &highColor);
    

    函数体

    void QUIHelper::setStyle(QUIWidget::Style style)
    {
        QString qssFile = ":/qss/lightblue.css";
    
        if (style == QUIWidget::Style_Silvery) {
            qssFile = ":/qss/silvery.css";
        } else if (style == QUIWidget::Style_Blue) {
            qssFile = ":/qss/blue.css";
        } else if (style == QUIWidget::Style_LightBlue) {
            qssFile = ":/qss/lightblue.css";
        } else if (style == QUIWidget::Style_DarkBlue) {
            qssFile = ":/qss/darkblue.css";
        } else if (style == QUIWidget::Style_Gray) {
            qssFile = ":/qss/gray.css";
        } else if (style == QUIWidget::Style_LightGray) {
            qssFile = ":/qss/lightgray.css";
        } else if (style == QUIWidget::Style_DarkGray) {
            qssFile = ":/qss/darkgray.css";
        } else if (style == QUIWidget::Style_Black) {
            qssFile = ":/qss/black.css";
        } else if (style == QUIWidget::Style_LightBlack) {
            qssFile = ":/qss/lightblack.css";
        } else if (style == QUIWidget::Style_DarkBlack) {
            qssFile = ":/qss/darkblack.css";
        } else if (style == QUIWidget::Style_PSBlack) {
            qssFile = ":/qss/psblack.css";
        } else if (style == QUIWidget::Style_FlatBlack) {
            qssFile = ":/qss/flatblack.css";
        } else if (style == QUIWidget::Style_FlatWhite) {
            qssFile = ":/qss/flatwhite.css";
        } else if (style == QUIWidget::Style_Purple) {
            qssFile = ":/qss/purple.css";
        } else if (style == QUIWidget::Style_BlackBlue) {
            qssFile = ":/qss/blackblue.css";
        } else if (style == QUIWidget::Style_BlackVideo) {
            qssFile = ":/qss/blackvideo.css";
        }
    
        QFile file(qssFile);
    
        if (file.open(QFile::ReadOnly)) {
            QString qss = QLatin1String(file.readAll());
            QString paletteColor = qss.mid(20, 7);
            getQssColor(qss, QUIConfig::TextColor, QUIConfig::PanelColor, QUIConfig::BorderColor, QUIConfig::NormalColorStart,
                        QUIConfig::NormalColorEnd, QUIConfig::DarkColorStart, QUIConfig::DarkColorEnd, QUIConfig::HighColor);
    
            qApp->setPalette(QPalette(QColor(paletteColor)));
            qApp->setStyleSheet(qss);
            file.close();
        }
    }
    
    void QUIHelper::setStyle(const QString &qssFile, QString &paletteColor, QString &textColor)
    {
        QFile file(qssFile);
        if (file.open(QFile::ReadOnly)) {
            QString qss = QLatin1String(file.readAll());
            paletteColor = qss.mid(20, 7);
            textColor = qss.mid(49, 7);
            getQssColor(qss, QUIConfig::TextColor, QUIConfig::PanelColor, QUIConfig::BorderColor, QUIConfig::NormalColorStart,
                        QUIConfig::NormalColorEnd, QUIConfig::DarkColorStart, QUIConfig::DarkColorEnd, QUIConfig::HighColor);
    
            qApp->setPalette(QPalette(QColor(paletteColor)));
            qApp->setStyleSheet(qss);
            file.close();
        }
    }
    
    void QUIHelper::setStyle(const QString &qssFile, QString &textColor, QString &panelColor, QString &borderColor,
                             QString &normalColorStart, QString &normalColorEnd,
                             QString &darkColorStart, QString &darkColorEnd, QString &highColor)
    {
        QFile file(qssFile);
        if (file.open(QFile::ReadOnly)) {
            QString qss = QLatin1String(file.readAll());
            getQssColor(qss, textColor, panelColor, borderColor, normalColorStart, normalColorEnd, darkColorStart, darkColorEnd, highColor);
            qApp->setPalette(QPalette(QColor(panelColor)));
            qApp->setStyleSheet(qss);
            file.close();
        }
    }
    
    void QUIHelper::getQssColor(const QString &qss, QString &textColor, QString &panelColor, QString &borderColor,
                                QString &normalColorStart, QString &normalColorEnd,
                                QString &darkColorStart, QString &darkColorEnd, QString &highColor)
    {
        QString str = qss;
    
        QString flagTextColor = "TextColor:";
        int indexTextColor = str.indexOf(flagTextColor);
        if (indexTextColor >= 0) {
            textColor = str.mid(indexTextColor + flagTextColor.length(), 7);
        }
    
        QString flagPanelColor = "PanelColor:";
        int indexPanelColor = str.indexOf(flagPanelColor);
        if (indexPanelColor >= 0) {
            panelColor = str.mid(indexPanelColor + flagPanelColor.length(), 7);
        }
    
        QString flagBorderColor = "BorderColor:";
        int indexBorderColor = str.indexOf(flagBorderColor);
        if (indexBorderColor >= 0) {
            borderColor = str.mid(indexBorderColor + flagBorderColor.length(), 7);
        }
    
        QString flagNormalColorStart = "NormalColorStart:";
        int indexNormalColorStart = str.indexOf(flagNormalColorStart);
        if (indexNormalColorStart >= 0) {
            normalColorStart = str.mid(indexNormalColorStart + flagNormalColorStart.length(), 7);
        }
    
        QString flagNormalColorEnd = "NormalColorEnd:";
        int indexNormalColorEnd = str.indexOf(flagNormalColorEnd);
        if (indexNormalColorEnd >= 0) {
            normalColorEnd = str.mid(indexNormalColorEnd + flagNormalColorEnd.length(), 7);
        }
    
        QString flagDarkColorStart = "DarkColorStart:";
        int indexDarkColorStart = str.indexOf(flagDarkColorStart);
        if (indexDarkColorStart >= 0) {
            darkColorStart = str.mid(indexDarkColorStart + flagDarkColorStart.length(), 7);
        }
    
        QString flagDarkColorEnd = "DarkColorEnd:";
        int indexDarkColorEnd = str.indexOf(flagDarkColorEnd);
        if (indexDarkColorEnd >= 0) {
            darkColorEnd = str.mid(indexDarkColorEnd + flagDarkColorEnd.length(), 7);
        }
    
        QString flagHighColor = "HighColor:";
        int indexHighColor = str.indexOf(flagHighColor);
        if (indexHighColor >= 0) {
            highColor = str.mid(indexHighColor + flagHighColor.length(), 7);
        }
    }
    
  • 相关阅读:
    菜鸟系列Golang学习 — 协程
    菜鸟系列Golang学习 — 切片
    菜鸟系列Golang学习 — 数组
    菜鸟系列Fabric —— Fabric-CA
    菜鸟系列计算机网络——TCP和UDP协议
    菜鸟系列Fabric源码学习 — kafka共识机制
    菜鸟系列Fabric源码学习 — 背书节点和链码容器交互
    Amazon's Dynamo 论文中文版
    3、递归(动态规划思想)
    2、链表(python实现)
  • 原文地址:https://www.cnblogs.com/feiyangqingyun/p/12732135.html
Copyright © 2020-2023  润新知