热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt5按钮风格生成器

找到一个按钮风格自动生成的软件,用Qt5写的。开源,大家研究学习一下。最后有源码Qt5.6编译。参考博客:http:www.cnblog

 找到一个按钮风格自动生成的软件,用Qt5写的。开源,大家研究学习一下。最后有源码Qt5.6编译。

参考博客:http://www.cnblogs.com/newstart/p/4337873.html
一个顶好的网站,上面有很多Qt的源码工程:https://www.linux-apps.com/content/show.php/AnalogWidgets?content=87780

mainwindow.h

/****************************************************************************
**
** Copyright (C) 2013 Yigit Agabeyli.
**
**
** This file may be used under the terms of the GNU General Public
** License version 2.0 as published by the Free Software Foundation
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_renkButton_clicked();void on_renkButton2_clicked();void on_grenkButton1_clicked();void on_grenkButton2_clicked();void on_grenkButton3_clicked();void on_grenkButton4_clicked();void on_bordRadSlider_valueChanged(int value);void on_bordThickSlider_valueChanged(int value);void on_gRadiusSlider_valueChanged(int value);void on_fontComboBox_currentIndexChanged(const QString &arg1);void on_fontSizeSlider_valueChanged(int value);private:Ui::MainWindow *ui;QString styleText;QString color;int border;QString solid;int borderRadius;int padding;double bgGrad_x1;double bgGrad_x2;double bgGrad_y1;double bgGrad_y2;double bgGrad_cx;double bgGrad_cy;double bgGrad_fx;double bgGrad_fy;double bgGrad2_cx;double bgGrad2_cy;double bgGrad2_fx;double bgGrad2_fy;float bgGrad_radius;QString bgGrad_stop0;QString bgGrad_stop11;QString bgGrad_stop12;QString bgGrad_stop13;QString fontFamily;QString gradyanType;QString gradyanString;int fontSize;void updateStylesheet();QString prependZeros(QString);
};#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"
#include int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);color="#333";border=2;ui->bordThickSlider->setValue(border);solid="#555";ui->renkLabel->setPalette(QPalette(QColor(color)));ui->renkLabel->setAutoFillBackground(true);ui->renkLabel2->setPalette(QPalette(QColor(solid)));ui->renkLabel2->setAutoFillBackground(true);fontFamily="MS Shell Dlg 2";ui->fontComboBox->setCurrentFont(QFont(fontFamily));fontSize=8;ui->fontSizeSlider->setValue(fontSize);borderRadius=11;ui->bordRadSlider->setValue(borderRadius);padding=5;gradyanType="qradialgradient";bgGrad_cx=0.3;bgGrad_cy=-0.4;bgGrad_fx=0.3;bgGrad_fy=-0.4;bgGrad2_cx=0.4;bgGrad2_cy=-0.1;bgGrad2_fx=0.4;bgGrad2_fy=-0.1;bgGrad_radius=1.35;ui->gRadiusSlider->setValue(bgGrad_radius*100);bgGrad_stop0="#fff";bgGrad_stop11="#888";bgGrad_stop12="#bbb";bgGrad_stop13="#ddd";ui->grenkLabel1->setPalette(QPalette(QColor(bgGrad_stop0)));ui->grenkLabel1->setAutoFillBackground(true);ui->grenkLabel2->setPalette(QPalette(QColor(bgGrad_stop11)));ui->grenkLabel2->setAutoFillBackground(true);ui->grenkLabel3->setPalette(QPalette(QColor(bgGrad_stop12)));ui->grenkLabel3->setAutoFillBackground(true);ui->grenkLabel4->setPalette(QPalette(QColor(bgGrad_stop13)));ui->grenkLabel4->setAutoFillBackground(true);updateStylesheet();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::updateStylesheet()
{styleText= QString(" QPushButton {\ncolor: "+color+";\nborder: "+QString::number(border)+"px solid "+solid+";\nfont: "+QString::number(fontSize)+"pt \""+fontFamily+"\""++";\nborder-radius: "+QString::number(borderRadius)+"px;\npadding: "+QString::number(padding)+"px;\nbackground: qradialgradient(cx: "+QString::number(bgGrad_cx)+", cy: "+QString::number(bgGrad_cy)+",\nfx: "+QString::number(bgGrad_fx)+", fy: "+QString::number(bgGrad_fy)+",\nradius: "+QString::number(bgGrad_radius)+", stop: 0 "+bgGrad_stop0+", stop: 1 "+bgGrad_stop11+");\nmin-width: 80px;\n}\n\n"+"QPushButton:hover {\nbackground: qradialgradient(cx: "+QString::number(bgGrad_cx)+", cy: "+QString::number(bgGrad_cy)+",\nfx: "+QString::number(bgGrad_fx)+", fy: "+QString::number(bgGrad_fy)+",\nradius: "+QString::number(bgGrad_radius)+", stop: 0 "+bgGrad_stop0+", stop: 1 "+bgGrad_stop12+");\n}\n\n "+"QPushButton:pressed {\nbackground: qradialgradient(cx: "+QString::number(bgGrad2_cx)+", cy: "+QString::number(bgGrad2_cy)+",\nfx: "+QString::number(bgGrad2_fx)+", fy: "+QString::number(bgGrad2_fy)+",\nradius: "+QString::number(bgGrad_radius)+", stop: 0 "+bgGrad_stop0+", stop: 1 "+bgGrad_stop13+");\n}");ui->pushButton->setStyleSheet(styleText);ui->styleOutput->setText(styleText);
}
QString MainWindow::prependZeros(QString col)
{QString rightColor&#61;col;while(rightColor.size()<6)rightColor.prepend("0");return rightColor;}
void MainWindow::on_renkButton_clicked()
{QColorDialog diag;QColor bColor&#61;diag.getColor(QColor(bgGrad_stop0));if(bColor.isValid()){ui->renkLabel->setPalette(bColor);ui->renkLabel->setAutoFillBackground(true);color&#61;bColor.name();updateStylesheet();}}
void MainWindow::on_renkButton2_clicked()
{QColorDialog diag;QColor bColor&#61;diag.getColor(QColor(bgGrad_stop11));if(bColor.isValid()){ui->renkLabel2->setPalette(bColor);ui->renkLabel2->setAutoFillBackground(true);solid&#61;bColor.name();updateStylesheet();}
}void MainWindow::on_grenkButton1_clicked()
{QColorDialog diag;QColor bColor&#61;diag.getColor(QColor(bgGrad_stop0));if(bColor.isValid()){ui->grenkLabel1->setPalette(bColor);ui->grenkLabel1->setAutoFillBackground(true);bgGrad_stop0&#61;bColor.name();updateStylesheet();}
}void MainWindow::on_grenkButton2_clicked()
{QColorDialog diag;QColor bColor&#61;diag.getColor(QColor(bgGrad_stop11));if(bColor.isValid()){ui->grenkLabel2->setPalette(bColor);ui->grenkLabel2->setAutoFillBackground(true);bgGrad_stop11&#61;bColor.name();int h,s,v;bColor.getHsv(&h,&s,&v);s&#61; s/2;bColor.setHsv(h,s,v);ui->grenkLabel3->setPalette(bColor);ui->grenkLabel3->setAutoFillBackground(true);bgGrad_stop12&#61;bColor.name();bColor.getHsv(&h,&s,&v);s&#61; s/2;bColor.setHsv(h,s,v);ui->grenkLabel4->setPalette(bColor);ui->grenkLabel4->setAutoFillBackground(true);bgGrad_stop13&#61;bColor.name();updateStylesheet();}}void MainWindow::on_grenkButton3_clicked()
{QColorDialog diag;QColor bColor&#61;diag.getColor(QColor(bgGrad_stop12));if(bColor.isValid()){ui->grenkLabel3->setPalette(bColor);ui->grenkLabel3->setAutoFillBackground(true);bgGrad_stop12&#61;bColor.name();updateStylesheet();}
}void MainWindow::on_grenkButton4_clicked()
{QColorDialog diag;QColor bColor&#61;diag.getColor(QColor(bgGrad_stop13));if(bColor.isValid()){ui->grenkLabel4->setPalette(bColor);ui->grenkLabel4->setAutoFillBackground(true);bgGrad_stop13&#61;bColor.name();updateStylesheet();}
}void MainWindow::on_bordRadSlider_valueChanged(int value)
{borderRadius&#61; value;updateStylesheet();
}void MainWindow::on_bordThickSlider_valueChanged(int value)
{border&#61;value;updateStylesheet();
}void MainWindow::on_gRadiusSlider_valueChanged(int value)
{bgGrad_radius&#61;value / 100.0;updateStylesheet();
}void MainWindow::on_fontComboBox_currentIndexChanged(const QString &arg1)
{fontFamily&#61;ui->fontComboBox->currentFont().family();updateStylesheet();
}void MainWindow::on_fontSizeSlider_valueChanged(int value)
{fontSize&#61;value;updateStylesheet();
}

ui文件


<ui version&#61;"4.0"><class>MainWindowclass><widget class&#61;"QMainWindow" name&#61;"MainWindow"><property name&#61;"geometry"><rect><x>0x><y>0y><width>715width><height>582height>rect>property><property name&#61;"windowTitle"><string>MainWindowstring>property><widget class&#61;"QWidget" name&#61;"centralWidget"><widget class&#61;"QGroupBox" name&#61;"groupBox_4"><property name&#61;"geometry"><rect><x>9x><y>14y><width>381width><height>141height>rect>property><property name&#61;"title"><string>边缘设置string>property><layout class&#61;"QGridLayout" name&#61;"gridLayout_5"><item row&#61;"0" column&#61;"0"><widget class&#61;"QLabel" name&#61;"label"><property name&#61;"text"><string>圆角弧度string>property>widget>item><item row&#61;"0" column&#61;"1"><widget class&#61;"QSlider" name&#61;"bordRadSlider"><property name&#61;"maximum"><number>30number>property><property name&#61;"orientation"><enum>Qt::Horizontalenum>property>widget>item><item row&#61;"1" column&#61;"0"><widget class&#61;"QLabel" name&#61;"label_2"><property name&#61;"text"><string>边缘厚度string>property>widget>item><item row&#61;"1" column&#61;"1"><widget class&#61;"QSlider" name&#61;"bordThickSlider"><property name&#61;"maximum"><number>15number>property><property name&#61;"orientation"><enum>Qt::Horizontalenum>property>widget>item><item row&#61;"2" column&#61;"0"><widget class&#61;"QPushButton" name&#61;"renkButton2"><property name&#61;"text"><string>边缘颜色string>property>widget>item><item row&#61;"2" column&#61;"1"><widget class&#61;"QLabel" name&#61;"renkLabel2"><property name&#61;"text"><string/>property>widget>item>layout>widget><widget class&#61;"QGroupBox" name&#61;"groupBox_5"><property name&#61;"geometry"><rect><x>20x><y>170y><width>370width><height>111height>rect>property><property name&#61;"minimumSize"><size><width>0width><height>50height>size>property><property name&#61;"title"><string>字体设置string>property><layout class&#61;"QGridLayout" name&#61;"gridLayout_6"><item row&#61;"0" column&#61;"0"><widget class&#61;"QLabel" name&#61;"label_5"><property name&#61;"text"><string>Familystring>property>widget>item><item row&#61;"1" column&#61;"0"><widget class&#61;"QLabel" name&#61;"label_4"><property name&#61;"text"><string>字体大小string>property>widget>item><item row&#61;"1" column&#61;"1"><widget class&#61;"QSlider" name&#61;"fontSizeSlider"><property name&#61;"minimum"><number>1number>property><property name&#61;"maximum"><number>30number>property><property name&#61;"orientation"><enum>Qt::Horizontalenum>property>widget>item><item row&#61;"0" column&#61;"1"><widget class&#61;"QFontComboBox" name&#61;"fontComboBox"/>item><item row&#61;"2" column&#61;"0"><widget class&#61;"QPushButton" name&#61;"renkButton"><property name&#61;"text"><string>字体颜色string>property>widget>item><item row&#61;"2" column&#61;"1"><widget class&#61;"QLabel" name&#61;"renkLabel"><property name&#61;"text"><string/>property>widget>item>layout>widget><widget class&#61;"QGroupBox" name&#61;"groupBox_2"><property name&#61;"geometry"><rect><x>20x><y>288y><width>371width><height>251height>rect>property><property name&#61;"title"><string>颜色渐变设置string>property><layout class&#61;"QGridLayout" name&#61;"gridLayout_2"><item row&#61;"1" column&#61;"0"><widget class&#61;"QPushButton" name&#61;"grenkButton1"><property name&#61;"text"><string>G.Color1string>property>widget>item><item row&#61;"1" column&#61;"1"><widget class&#61;"QLabel" name&#61;"grenkLabel1"><property name&#61;"text"><string/>property>widget>item><item row&#61;"2" column&#61;"0"><widget class&#61;"QPushButton" name&#61;"grenkButton2"><property name&#61;"text"><string>G.Color2string>property>widget>item><item row&#61;"2" column&#61;"1"><widget class&#61;"QLabel" name&#61;"grenkLabel2"><property name&#61;"text"><string/>property>widget>item><item row&#61;"3" column&#61;"0"><widget class&#61;"QPushButton" name&#61;"grenkButton3"><property name&#61;"text"><string>G.Color3string>property>widget>item><item row&#61;"3" column&#61;"1"><widget class&#61;"QLabel" name&#61;"grenkLabel3"><property name&#61;"text"><string/>property>widget>item><item row&#61;"4" column&#61;"0"><widget class&#61;"QPushButton" name&#61;"grenkButton4"><property name&#61;"text"><string>G.Color4string>property>widget>item><item row&#61;"4" column&#61;"1"><widget class&#61;"QLabel" name&#61;"grenkLabel4"><property name&#61;"text"><string/>property>widget>item><item row&#61;"5" column&#61;"0"><widget class&#61;"QLabel" name&#61;"label_3"><property name&#61;"text"><string>G.Radiusstring>property>widget>item><item row&#61;"5" column&#61;"1"><widget class&#61;"QSlider" name&#61;"gRadiusSlider"><property name&#61;"maximum"><number>300number>property><property name&#61;"orientation"><enum>Qt::Horizontalenum>property>widget>item><item row&#61;"0" column&#61;"1"><widget class&#61;"QComboBox" name&#61;"comboBox"><item><property name&#61;"text"><string>Radial Gradyanstring>property>item><item><property name&#61;"text"><string>Lineer Gradyanstring>property>item>widget>item><item row&#61;"0" column&#61;"0"><widget class&#61;"QLabel" name&#61;"label_6"><property name&#61;"text"><string>G. Typestring>property>widget>item>layout>widget><widget class&#61;"QGroupBox" name&#61;"groupBox"><property name&#61;"geometry"><rect><x>400x><y>14y><width>291width><height>141height>rect>property><property name&#61;"title"><string>按钮预览string>property><layout class&#61;"QGridLayout" name&#61;"gridLayout_3"><item row&#61;"0" column&#61;"1"><widget class&#61;"QPushButton" name&#61;"pushButton"><property name&#61;"styleSheet"><string notr&#61;"true"/>property><property name&#61;"text"><string>PushButtonstring>property>widget>item><item row&#61;"0" column&#61;"0"><spacer name&#61;"horizontalSpacer"><property name&#61;"orientation"><enum>Qt::Horizontalenum>property><property name&#61;"sizeHint" stdset&#61;"0"><size><width>40width><height>20height>size>property>spacer>item><item row&#61;"0" column&#61;"2"><spacer name&#61;"horizontalSpacer_2"><property name&#61;"orientation"><enum>Qt::Horizontalenum>property><property name&#61;"sizeHint" stdset&#61;"0"><size><width>40width><height>20height>size>property>spacer>item>layout>widget><widget class&#61;"QTextEdit" name&#61;"styleOutput"><property name&#61;"geometry"><rect><x>410x><y>180y><width>279width><height>361height>rect>property>widget>widget><widget class&#61;"QStatusBar" name&#61;"statusBar"/>widget><layoutdefault spacing&#61;"6" margin&#61;"11"/><resources/><connections/>
ui>

这里写图片描述

这里写图片描述


推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
author-avatar
angela-gugupb_269
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有