代码编织梦想

void paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);  // 设置反锯齿;
	// 通过MouseEnterEvent() & MouseLeaveEvent()函数检查是否鼠标在此Widget上
    if (!isHovered)
    {
		// 如鼠标进去此Widget时,边框改变颜色
        const QColor color(50, 50, 63);
        painter.setPen(color);
    }
    else
    {
		// 如鼠标离开此Widget时,边框改变颜色
        const QColor color(86, 85, 96);
        painter.setPen(color);
    }
    painter.setBrush(QBrush(Qt::transparent));  // 设置填充颜色为透明

    QRect rect = this->rect();
    rect.setWidth(rect.width() - 1);
    rect.setHeight(rect.height() - 1);
    painter.drawRoundedRect(rect, 8, 8);  // 绘制带圆角的矩形
    QWidget::paintEvent(event);
}

参考:(https://blog.csdn.net/GoForwardToStep/article/details/52084538)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/wjx1001027/article/details/110951517

ROS 中 boost::bind( ) 的使用-爱代码爱编程

ROS 中 boost::bind( ) 的使用 1. boost::bind( )使用方法 定义如下函数: int f(int a, int b) { return a + b; } int g(int a, int b, int c) { return a + b + c; } boost::bind(f, 1, 2)可以

leetcode 174 地下城游戏(倒序动态规划)-爱代码爱编程

题目描述: 一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。 有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(

常见C语言编程题-爱代码爱编程

1.编写函数fun,它的功能是计算:s作为函数值返回。C语言中可调用log( n )函数求ln (n)。log函数的引用说明是: double log(double x)。例如,若m的值为: 20,fun函数值为: 6.506583。 #include <conio.h> #include <math.h> #include

C++ 之父:C++ 是一切的无形基础,透露编程语言生存 40 年秘诀!-爱代码爱编程

C++ 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一。 到 2020 年 9 月为止,C++ 是仅次于 C 语言、Java 和 Python,位于全球第四的编程语言。根据最新的 TIOBE 索引,C++ 也是增长最快的语言。 近日,C++ 之父 Bjarne Stroustrup 在接受外媒访谈的时候,对 C++ 成功的关键

lambda表达式-爱代码爱编程

基本结构 [函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体} 引入符说明[]不捕获任何外部变量[=]以传值的方式捕获所有外部变量[&]以传引用的方式捕获所有外部变量[x,&y]x 以传值的方式捕获,其余外部变量传引用的方式捕获[=,&x]x以传引用的方式捕获,

c++primer(学习第一、二章笔记)-爱代码爱编程

第一章 1. endl写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。 2."编辑-编译-调试"周期 错误信息描述了编译器认为的我们所犯的错误。好习惯1.按照报告的顺序来逐个修正错误好习惯2.在每修正一个错误后

QUDPSocket接收信号无法触发问题-爱代码爱编程

QT5.14,Server-Client应用,Server为树莓派;Client为Android设备,代码用QT编写封装为so Android上点击按钮,调用so发送数据,Server能正常接收数据。 Server原路(获取到ip和port)发送给Client响应数据,然而Client就是不触发readyRead信号。 解决: 在通过udp发送数据

Qt 模态窗口和非模态窗口-爱代码爱编程

模态窗口弹出时,不能进行其它窗口的交互,非模态窗口弹出时,可以进行其它窗口的交互。 #include "mywidget.h" #include "ui_mywidget.h" #include <QDialog> MyWidget::MyWidget(QWidget *parent) : QWidget(parent),

Qt委托类Delegate使用,视图模型框架篇-爱代码爱编程

委托类(Delegate) 概念: 与模型-视图-控制器模式不同,模型/视图设计不包含用于管理与用户交互的完全独立组件。 通常,视图负责向用户显示模型数据,并负责处理用户输入。为了在获取此输入的方式上留出一些灵活性,由委托执行交互。这些组件提供输入功能,还负责在某些视图中呈现单个项目。控制委托的标准接口在QAbstractItemDelegate 类中定

Qt主线程阻塞导致消息队列中的uart动作处理不及时(处理耗时操作导致界面卡顿)-爱代码爱编程

问题描述 使用Qt开发,App通过uart向基板发送uart命令。想在两个命令间加上10ms延时,代码如下: char cMessage[4]; ... ... m_serialPort->write(cMessage,4); usleep(10000); m_serialPort->write(cMessage,4); 但实际执行的

【Qt Creator】6.0版本报错Project ERROR: Unknown module(s) in QT: multimedia-爱代码爱编程

Intro: Qt Creator 6.0 on Mac OS用6.0版本的Kit去Configure Project后,直接出现Project ERROR: Unknown module(s) in QT: multimediaSolution: 查了一些资料,发现6.0版本的Qt Creator好像没有multimedia module,在官网也找

Qt 颜色对话框 QColorDialog-爱代码爱编程

1.头文件 #include <QColorDialog> 2.主要函数 [static] QColor QColorDialog::getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title =