首页 > 其他分享 >Qt创建一个自定义QPushButton

Qt创建一个自定义QPushButton

时间:2023-11-28 13:23:00浏览次数:36  
标签:Qt 自定义 样式 Button QPushButton 按钮 btn btn2

一、概述

  使用Qt创建一个通用的QPushButton。应用一些样式把按钮做的好看一些。

  步骤:

    1.新建一个Button类然后继承QPushButton

    2.设置Button的通用样式(ps:使用.qss文件的形式应用样式)

    3.个性化设置不同的样式

    4.做一个圆角按钮、带图标按钮、带背景图片按钮

二、示例

  1.创建Button.h和Button.cpp继承QPushButton

#include "Button.h"
#include <QDebug>
#include <QIcon>

Button::Button(QWidget* parent)
    : QPushButton(parent)
{
    //this->resize(80, 36);
    this->setFixedHeight(36);
  //设置默认的样式 QString css = StyleHelper::getStyleSheet(StyleConfig::COMMON_BUTTON_STYLE()); this->setStyleSheet(css); } /** * 设置自定义按钮样式 * 样式直接从StyleConfig中获取,里面存放了一些通用样式 */ void Button::setCustomStyleSheet(QString qss) { QString css = StyleHelper::getStyleSheet(qss); this->setStyleSheet(css); } Button::~Button() { }

  2.个性化设置按钮的样式

Button *btn = new Button(this);
btn->move(0, 5);
btn->setText("点击按钮应用样式");

//给按钮加上图标
Button* btn2 = new Button(this);
btn2->setCustomStyleSheet(StyleConfig::COMMON_BUTTON_SHAPE_BLACK_R10());
btn2->setText("第二个按钮");
btn2->setIcon(QIcon("images/ai_suanfa.png"));//给按钮设置图标
btn2->move(0, btn->y()+btn->height()+5);

//给按钮加上背景图片
Button* btn3 = new Button(this);
btn3->resize(100, 36);
btn3->setCustomStyleSheet(StyleConfig::COMMON_BUTTON_IMAGE_BG());
btn3->move(5,btn2->y()+ btn2->height()+5);

  3.三种按钮的演示效果

 

标签:Qt,自定义,样式,Button,QPushButton,按钮,btn,btn2
From: https://www.cnblogs.com/tony-yang-flutter/p/17861728.html

相关文章

  • SpringCloud——自定义断言工厂
    目录场景:用户的请求头中需要有指定的用户名和密码才能访问。断言工厂参考系统AfterRoutePredicateFactory写法。packagecom.zjw.factory;importlombok.Getter;importlombok.Setter;importorg.springframework.cloud.gateway.handler.predicate.AbstractRoutePredi......
  • 【2023CANN训练营第二季】——Ascend C自定义算子工程介绍及实验
    一、自定义算子工程介绍与创建自定义算子工程是一个包含用户编写的host侧和kerne|侧算子实现文件的,用于编译和安装自定义算子run包的工程框架。CANN软件包中提供了工程创建工具msopgen,开发者可以输入算子原型定义文件生成AscendC算子开发工程。需要编写AddCustom算子的原型定义......
  • QT第2课-GUI程序实例分析
    GUI程序开发概述不同的操作系统GUI开发原理相同不同的操作系统GUISDK不同GUI程序开发原理GUI程序在运行时会创建一个消息队列系统内核将用户的键盘鼠标操作翻译成对应的程序消息程序在运行过程中需要实时处理队列中的消息当队列中没有消息时,程序将处于停滞状态,等待用户操作经典......
  • 内核模块开发入门指南:在CentOS 7上实现自定义功能
    内核模块开发入门指南:在CentOS7上实现自定义功能在CentOS7及其他Linux系统中,内核模块是一种动态加载到内核中的代码,用于扩展内核的功能。内核模块的开发允许开发者在不重新编译内核的情况下,添加新的功能、驱动或调整系统行为。本文将带你入门内核模块的开发,在CentOS7上实现自......
  • Qt之QSS的使用
    一、QSS介绍QSS(QuickStyleSheet)是一种用于定义Qt应用程序样式的机制。Qt是一个跨平台的C++应用程序开发框架,而QSS则允许开发者使用类似于CSS(层叠样式表)的语法来定义Qt应用程序的外观和风格。1.QSS的基本语法QSS的语法类似于CSS,通过设置属性和值的方式定义样式。例如:QPushBu......
  • 自定义标签和过滤器
    1自定义过滤器 -第一步:在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag-第二步:在app中创建templatetags包(包名只能是templatetags,不能改)-第三步:在包内,新建py文件(如:my_tags.py)-第四步:写代码(过滤器) fromdjangoimporttemplate......
  • 遇到Qt使用UI文件无法连接信号问题
    1.手动加载UI文件代码如下: 以上代码pushButton按钮在状态切换时,无法接收到信号,经过调试发现调用"connect"时变量“lineWidget”各个成员都是空指针,但是"connect"函数并没有报异常。2.查看"setupUI"函数,其片段如下: 可以发现,其实创建对象都是在"setupUi"中完成。3......
  • 直播系统app源码,自定义可以暂停的倒计时
    直播系统app源码,自定义可以暂停的倒计时用到的抽象类: publicabstractclassTimerListener{  /**   *当倒计时开始   */  publicvoidonStart(){  }  /**   *当倒计时恢复暂停   */  publicvoidonResume(){  }  /**  ......
  • app直播源码,uniapp之自定义顶部样式
    app直播源码,uniapp之自定义顶部样式 //需要自定义顶部样式的页面配置{"path":"pages/case/index","style":                                           {  "navigationBarTitleT......
  • Vue中自定义组件监听事件传参
    自定义数字框组件如下<template><divclass="count-box"><button@click="handleSub"class="minus">-</button><input:value="value"@change="handleChange"class="inp"typ......