zoukankan      html  css  js  c++  java
  • Qt Qpushbutton美化问题

    昨天在论坛看到一个网友的提问,如下

    我想到的第一个就是可能需要重载Pushbutton,不过看到有网友回复可以使用stykesheet解决,今天尝试了一下,还是没有成功,

    一下是我使用车重载的Pushbutton的方式实现

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        ui->pushButton->setIcon(QIcon(":/picture.ico"));
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    

    主函数,我默认上来线给按钮设置一个icon文件的图标

    运行如下图所示



    这个时候,我将按钮提升为我自己写的按钮

    m_pushbuton.h

    #ifndef M_PUSHBUTON_H
    #define M_PUSHBUTON_H
    
    #include <QPushButton>
    #include <QEvent>
    class m_pushbuton : public QPushButton
    {
    public:
        m_pushbuton(QWidget *parent);
        void enterEvent(QEvent* event);
        void leaveEvent(QEvent* event);
    };
    
    #endif // M_PUSHBUTON_H
    


    m_pushbuton.cpp

    #include "m_pushbuton.h"
    
    m_pushbuton::m_pushbuton(QWidget *parent): QPushButton(parent)
    {
    
    }
    
    void m_pushbuton::enterEvent(QEvent *event)
    {
        this->setIcon(QIcon(":/logo.ico"));
    }
    
    void m_pushbuton::leaveEvent(QEvent *event)
    {
        this->setIcon(QIcon(":/picture.ico"));
    }
    



    这样就可以实现网友的功能了,不过这个有个问题就是,以我现在的方式,没一个按钮都需要一个重载函数,这里可以在后面在增加一个参数,把Icon的路径传入,就可以实现多个按钮的功能实现了

    运行截图

    使用样式表的方式还没有弄出来,有弄出来的小伙伴们可以指导我一下

    ui->pushButton->setStyleSheet("QPushButton:hover:QIcon(:/logo.ico)");


    使用这个语句Qt总是提示我语法错误,

    ui->pushButton->setStyleSheet("QPushButton:hover{QIcon(:/logo.ico);}");


    这样的也是错误,实在是不知道样式表怎么写

    感谢下面这位大神的博客指导

    参考http://blog.csdn.net/u010519432/article/details/26758959

  • 相关阅读:
    2019.10.07题解
    2019.10.06题解
    2019.10.05'题解
    2019.10.05题解
    java邮件发送
    注释类型 XmlType
    Spring 注解
    @SuppressWarnings(unchecked)作用解释
    vm文件
    Apache Shiro 使用手册(一)Shiro架构介绍
  • 原文地址:https://www.cnblogs.com/DreamDog/p/9160069.html
Copyright © 2011-2022 走看看