个人Qt 学习记录 --- 自义定QPushButton

本文详细介绍了如何使用Qt中的StyleSheet进行QPushButton的设计,包括背景和按钮状态的定制,以及通过重写代码实现按下的视觉效果。此外,还分享了念茜大大提供的按钮重写代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统自带的QPushButton 放放正正  但是远远满足不了界面设计的要求   这里做一下记录及说明   


鄙人主要是用Qt 中的StyleSheet进行PushButton的设计

代码如下:

QPushButton
{
	color: rgb(0, 0, 0);                               //字体颜色
	border-image: url(:/new/prefix1/image/XX.png);     //PushButton 平常状态的样子  
}


QPushButton:hover
{
	margin:1px;                    //这是鼠标指上时PushButton发生的变化   这里是缩小1px
}
QPushButton:pressed
{
	margin:2			//这里是当按键按下时PushButton的变化
}

                   

这样  通过对背景及按钮状态的设计 以及按下缩小的特性  达到一个按下的视觉效果


同样 和其他控件一样  也可以对pushbutton重写  


以下是念茜大大的重写代码的格式   有兴趣的朋友可以尝试下   代码来源:http://blog.youkuaiyun.com/yiyaaixuexi/article/details/6706729

Button::Button(QWidget *parent) : QPushButton(parent)  
{  
        //保存图片成员初始化  
        buttonPicture = new QPixmap();  
        pressPicture = new QPixmap();  
        releasePicture = new QPixmap();  
  
        enterPicture = new QPixmap();  
        leavePicture = new QPixmap();  
  
        //关闭按钮的默认显示  
        this -> setFlat(true);  
        this->setFocusPolicy(Qt::NoFocus);  
  
        //初始化flag  
        flag=false;  
  
  
}  
  
void Button::setButtonPicture(QPixmap pic)  
{  
        *buttonPicture = pic;  
  
        this -> setIcon(QIcon(*buttonPicture));  
}  
  
void Button::setPressPicture(QPixmap pic)  
{  
        *pressPicture = pic;  
}  
  
void Button::setReleasePicture(QPixmap pic)  
{  
        *releasePicture = pic;  
}  
  
void Button::setEnterPicture(QPixmap pic)  
{  
    *enterPicture = pic;  
}  
  
void Button::setLeavePicture(QPixmap pic)  
{  
    *leavePicture = pic;  
}  
  
void Button::set_X_Y_width_height(int x, int y, int width, int height)  
{  
        this -> setIconSize(QSize(width, height));  
        this -> setGeometry(x, y, width, height);  
}  
  
void Button::mouseDoubleClickEvent(QMouseEvent *event)  
{  
        //null  
}  
  
void Button::mousePressEvent (QMouseEvent *event)  
{  
        this -> setIcon (QIcon(*pressPicture));  
}  
  
void Button::mouseMoveEvent(QMouseEvent *event)  
{  
        //null  
}  
  
  
void Button::mouseReleaseEvent (QMouseEvent *event)  
{  
        this -> setIcon(QIcon(*releasePicture));  
        emit clicked();  
}  
  
void Button::enterEvent(QEvent *)  
{  
    this->setIcon(QIcon(*enterPicture));  
    flag=true;  
  //  this->resizeit();  
  
}  
  
void Button::leaveEvent(QEvent *)  
{  
    this->setIcon(QIcon(*leavePicture));  
    flag=false;  
}  
  
void Button::resizeit(int w , int h)  
{  
    this->raise();  
    this->resize(w,h);  
    this ->setIconSize(QSize(w, h));  
  
}  


### 如何下载 Qt Visual Studio Add-in (MSVC 2019, Version 2.4.3) 为了获取 `qt-vsaddin-msvc2019-2.4.3.vsix` 文件,可以按照以下说明操作: #### 下载地址 官方提供的开发版本可以在以下链接找到: [https://download.qt.io/development_releases/vsaddin/](https://download.qt.io/development_releases/vsaddin/) 在这个页面中,可以通过浏览文件列表来定位到具体的 `.vsix` 文件。对于指定的版本 `2.4.3` 和目标平台 `msvc2019`,可以直接访问该路径下的具体文件名[^1]。 如果无法通过上述方式快速定位,也可以尝试手动输入完整的 URL 地址: ``` https://download.qt.io/development_releases/vsaddin/qt-vsaddin-msvc2019-2.4.3.vsix ``` #### 验证文件可用性 在下载之前,请确认所使用的 Visual Studio 版本与插件版本匹配。例如,`msvc2019` 插件适用于 Visual Studio 2019 平台。此外,在安装过程中需要注意关闭自动更新功能以防止潜在的兼容性问题。 #### 手动安装步骤 一旦成功下载了 `.vsix` 文件,双击运行即可启动 Visual Studio Installer 进行安装。确保已提前准备好对应的 Visual Studio 环境,并验证其工具链是否正常工作。 --- 以下是用于验证环境配置的一个简单代码片段,展示如何初始化并测试 Qt 工具集的功能: ```cpp #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton button("Hello World"); button.resize(100, 30); button.show(); return app.exec(); } ``` 此示例展示了基本的 GUI 应用程序创建过程,可用于初步检验 Qt 开发环境是否正确设置完成。 --- ### 注意事项 - 如果遇到网络连接不稳定的问题,建议使用国内镜像站点加速下载进程。例如清华大学开源软件镜像服务提供了部分历史存档资源,尽管主要针对的是核心库而非附加组件[^2]。 - 对于更复杂的依赖管理场景,还可以考虑借助第三方包管理器如 Chocolatey 来简化流程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值