首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

QT:如何在鼠标悬停QMenuBar的项目时触发“加粗”

在Qt中,可以通过重写QMenuBar的event方法来实现在鼠标悬停QMenuBar的项目时触发"加粗"的效果。

具体步骤如下:

  1. 创建一个自定义的QMenuBar子类,例如CustomMenuBar。
代码语言:txt
复制
class CustomMenuBar : public QMenuBar
{
    Q_OBJECT
public:
    explicit CustomMenuBar(QWidget *parent = nullptr);

protected:
    bool event(QEvent *event) override;
};
  1. 在CustomMenuBar的构造函数中,设置菜单项的样式。
代码语言:txt
复制
CustomMenuBar::CustomMenuBar(QWidget *parent) : QMenuBar(parent)
{
    // 设置菜单项的样式
    setStyleSheet("QMenuBar::item:hover { font-weight: bold; }");
}
  1. 重写CustomMenuBar的event方法,在鼠标悬停菜单项时触发"加粗"的效果。
代码语言:txt
复制
bool CustomMenuBar::event(QEvent *event)
{
    if (event->type() == QEvent::HoverMove)
    {
        QHoverEvent *hoverEvent = static_cast<QHoverEvent *>(event);
        QAction *action = actionAt(hoverEvent->pos());
        if (action)
        {
            // 设置当前悬停菜单项的样式
            action->setFont(QFont("Arial", 10, QFont::Bold));
        }
    }
    else if (event->type() == QEvent::Leave)
    {
        // 恢复所有菜单项的样式
        QList<QAction *> actions = findChildren<QAction *>();
        foreach (QAction *action, actions)
        {
            action->setFont(QFont("Arial", 10, QFont::Normal));
        }
    }

    return QMenuBar::event(event);
}
  1. 在主窗口中使用CustomMenuBar替代原有的QMenuBar。
代码语言:txt
复制
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    CustomMenuBar *menuBar = new CustomMenuBar(this);
    setMenuBar(menuBar);
}

这样,当鼠标悬停在CustomMenuBar的项目上时,该项目的字体将会加粗显示。当鼠标离开CustomMenuBar时,所有项目的字体将恢复正常。

推荐的腾讯云相关产品:腾讯云服务器(CVM),腾讯云数据库(TencentDB),腾讯云对象存储(COS)等。你可以在腾讯云官网上找到这些产品的详细介绍和文档。

腾讯云官网链接:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【QT】Qt 窗口 (QMainWindow)

如下图为 QMainwindow 中 各组件所处的位置: 一、菜单栏 Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。⼀个主窗口最多只有⼀个菜单栏。位于主窗口顶部、主窗⼝标题栏下面。...edit); edit->setPlaceholderText("此处编写文本内容"); } (2)给 action 添加⼀些动作 // 连接信号槽, 点击 action 时触发...在状态栏中可以显⽰的消息类型有: 实时消息:如当前程序状态 永久消息:如程序版本号,机构名称 进度消息:如进度条提⽰,百分百提⽰ 1....mainwindow.cpp ⽂件中实现:当点击 “新建” 时,弹出⼀个模态对话框; 说明:在菜单项中,点击菜单项时就会触发 triggered() 信号。...同时还需要设置 Qt:WA_DeleteOnClose 属性,⽬的是:当创建多个⾮模态对话框时(如打开了多个非模态窗⼝),为了避免内存泄漏要设置此属性。

35510

C++ Qt开发:ToolBar与MenuBar菜单组件

工具按钮可以包含文本、图标,也可以与相应的槽函数关联,实现用户点击按钮时触发相应的操作。分组和弹出菜单: 工具栏支持将工具按钮分组,使界面更加清晰。还可以为工具按钮添加弹出菜单,以提供额外的选项。...1.2 QMenuBar 菜单栏QMenuBar 是 Qt 中用于创建菜单栏的组件,它提供了一种方便的方式来组织和管理应用程序的菜单。...动作关联: 菜单项通常与具体的动作(QAction)关联,点击菜单项时触发相应的动作。上下文菜单: QMenuBar 也可以用作上下文菜单(右键菜单),在特定区域点击右键时显示相应的菜单项。...",QMessageBox::Ok); });}由于通过connect绑定到了每一个Action上,所以当用户点击不同的菜单时将会触发不同的匿名槽函数,代码中实现了弹窗提示,此处也可以替换成任意代码...该信号在用户请求上下文菜单时触发,例如通过右键单击某个小部件(如窗口、按钮、表格等)时。

2.7K10
  • C++ Qt开发:ToolBar与MenuBar菜单组件

    工具按钮可以包含文本、图标,也可以与相应的槽函数关联,实现用户点击按钮时触发相应的操作。 分组和弹出菜单: 工具栏支持将工具按钮分组,使界面更加清晰。还可以为工具按钮添加弹出菜单,以提供额外的选项。...1.2 QMenuBar 菜单栏 QMenuBar 是 Qt 中用于创建菜单栏的组件,它提供了一种方便的方式来组织和管理应用程序的菜单。...动作关联: 菜单项通常与具体的动作(QAction)关联,点击菜单项时触发相应的动作。 上下文菜单: QMenuBar 也可以用作上下文菜单(右键菜单),在特定区域点击右键时显示相应的菜单项。...",QMessageBox::Ok); }); } 由于通过connect绑定到了每一个Action上,所以当用户点击不同的菜单时将会触发不同的匿名槽函数,代码中实现了弹窗提示,此处也可以替换成任意代码...该信号在用户请求上下文菜单时触发,例如通过右键单击某个小部件(如窗口、按钮、表格等)时。

    1K10

    【QT】:QMainWindow 窗口

    如果我们自己创建的项目没有勾选自动生成 ui 文件,那么上述代码是没有问题的。...四、添加快捷键 一般来说菜单都会有对应的快捷键,方便我们更好操作,因此我们也可以 在设置菜单的 title 时,在字母前加 & 符号 示例: QMenuBar* menuBar = new QMenuBar...(1)新建 Qt 项目 注意:此时新建项目时选择的基类 QMainwindow !!!...this->setCentralWidget(edit); edit->setPlaceholderText("此处编写⽂本内容..."); // 连接信号槽,点击 action 时触发一定的效果...在状态栏中可以显示的消息类型有: 实时消息:如当前程序状态 永久消息:如程序版本号,机构名称 进度消息:如进度条提示,百分百提示 一、状态栏的创建 状态栏的创建是通过 QMainWindow 类提供的

    8510

    QT从控件部分知识点整理

    QT中的工具栏和菜单栏 QMainWindow 菜单栏创建演示: 工具栏创建演示: 状态栏创建演示: 铆接部件(浮动窗口)创建演示: 中心部件创建演示: 资源文件添加 模态和非模态对话框 消息对话框...颜色对话框 文件对话框 字体对话框 QMainWindow 菜单栏在为空的状态下,什么都不会显示 菜单栏创建演示: //菜单栏创建---菜单栏最多只能有一个 QMenuBar*b=...//重置窗口大小 resize(600,400); //菜单栏创建---菜单栏最多只能有一个 QMenuBar*b=menuBar(); //将菜单栏放入到窗口中...=new QTextEdit(this); setCentralWidget(edit); ---- 资源文件添加 步骤1: 找到当前项目所在文件夹,将对应的资源放入当前项目所在的文件夹...qDebug()<<"字体: "<<font.family().toUtf8().data()<<" 字号:"<<font.pointSize()<< " 是否加粗

    1.1K20

    CC++ Qt ListWidget 增加右键菜单

    在上一篇博文《C/C++ Qt ListWidget 列表框组件应用》中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在ListWidget组件中的任意一个子项下右键...,并对该菜单设置子菜单以及所对应的图标组,最后就是将信号连接到指定的全局菜单指针上即可,这个代码实现如下。...::CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单...")); });}MainWindow::~MainWindow(){ delete ui;}// 当listWidget被右键点击时则触发void MainWindow::on_listWidget_customContextMenuRequested...::CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单

    78210

    Qt5-QtWidgets篇

    什么是QT QT是一个跨平台的C++图像用户界面应用程序框架 QT在1991年由奇趣科技开发 QT的优点 跨平台,几乎支持所有平台 接口简单,容易上手 一定程度上简化了内存回收机制 有很好的社区氛围 可以进行嵌入式开发...QString 转char * 使用.toUtf8().data() 信号和槽连接:触发这个信号才能触发槽 一个信号可以连接多个槽 多个信号也可以连接同一个槽函数 信号和槽的参数和类型必须对应 信号的参数个数可以多于槽的参数个数...* edit = new QTextEdit(this); + setCentralWidget(edit); //设置中心部件 资源文件 将图片文件文件夹拷贝到项目下 右键项目->添加新文件...该控件被按下时的状态 :disabled 该控件禁用时的状态 :first 该控件是第一个(列表中) :focus 该控件有输入焦点时 动画 QPropertyAnimation...人点击后 金币触发翻转 定时器每隔30ms发送一次信号给金币 金币触发图片重新放置,到最大值或者最小值的时候关闭定时器 金币中有坐标i 和 j 以及一个flag 来确定该金币在页面中的位置 锁定窗口

    1.5K20

    【QT】Widget 控件核心属性

    windowTitle 设置 widget 标题 windowIcon 设置 widget 图标 windowOpacity 设置 widget 透明度 cursor 鼠标悬停时显示的图标形状...Qt::DefaultContextMenu:默认的上下⽂菜单策略,⽤⼾可以通过⿏标右键或键盘快捷键触发上下⽂菜单 Qt::NoContextMenu:禁⽤上下⽂菜单,即使⽤⼾点击⿏标右键也不会显⽰菜单...⿏标右键或键盘快捷键触发这个菜单 Qt::CustomContextMenu:使⽤⾃定义的上下⽂菜单,⽤⼾可以通过⿏标右键或键盘快捷键触发这个菜单 locale 设置语⾔和国家地区....如果设置为true,那么该部件就可以接收来⾃其他部件的拖放操作。当⼀个部件被拖放到该部件上时,该部件会接收到相应的拖放事件(如dropEvent)。...⽐如某个控件能否⽤⿏标选中或者能否通过 tab 键选中. Qt::FocusPolicy 是⼀个枚举类型.

    16010

    Qt 学习记录

    的核心,它让两个互不相干的对象连接起来,当一个对象的状态改变时,可以通知另一个对象。...Lambda 表达式是 C++ 11 的内容,在比较低的 Qt版本中,要注意在 Pro 项目文件中加入 CONFIG += C++ 11。...② 操作符重载函数参数 标识重载的 () 操作符的参数,没有参数时,这部分可以省略。参数可以通过按值(如:(a,b))和按引用(如:(&a,&b))两种方式进行传递。...2.右键项目->添加新文件 –> Qt - > Qt recourse File - >给资源文件起名xxx,创建后生成 xxx.qrc 3.右键 xxx.qrc ,选择 open in editor...QIODevice::Text: 以文本方式打开文件,读取时“\n”被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如 Windows 平台下是“\r\n”。

    7.2K50

    Qt5实战第四篇:Qt5的对话框与窗口

    对话框用于与用户进行简短的交互,如确认操作、输入数据等;而窗口则通常用于展示应用程序的主要内容或提供复杂的交互界面。本文将详细介绍Qt5中对话框与窗口的创建、使用以及它们之间的区别和联系。...Qt5提供了多种对话框类,如QDialog、QMessageBox、QFileDialog和QInputDialog等。QDialog:是所有对话框的基类。...QInputDialog:允许用户输入单行文本或选择一个项目(如从列表中选择)。...关闭行为:对话框在关闭时通常会返回一个结果(如QDialog::Accepted或QDialog::Rejected);而窗口的关闭通常只是简单地隐藏窗口或退出应用程序。...接下来,我们会继续学习Qt5的其他高级特性,如事件处理、图形视图框架、多线程等,以构建更加复杂和强大的应用程序

    20210

    【QT】: 初识 QWidget 控件 | QWidget 核心属性(API) | qrc 文件

    windowIcon 设置 widget 的图标。 windowOpacity 设置 widget 的透明度。 cursor 设置鼠标悬停时显示的图标形状,如普通箭头、沙漏或十字等。...可通过 Qt Designer 查看选项。 font 控制字体相关属性,包括字体家族、大小、粗体、斜体、下划线等样式。 toolTip 当鼠标悬停在 widget 上时,在状态栏中显示的提示信息。...whatsThis 当鼠标悬停并按下 Alt+F1 时,显示的帮助信息(显示在一个弹出窗口中)。...和拒绝 pushButton_moment)以及一个标签 label,用来显示文本信息 ② 实现交互逻辑: 在 widget.cpp 中定义槽函数,使得当用户点击 “forever…” 拒绝按钮时,触发按钮逃跑的行为...所谓的前缀,可以理解成 “虚拟的目录”,这个目录在我们的电脑中并不是真实存在的,是 Qt 自己抽象出来的,它决定了后续我们如何在代码中访问资源。

    31710

    QT入门学习——从信号和槽到对话框,各种控件以及自定义控件

    引出QT入门学习——从信号和槽到对话框,各种控件以及自定义控件qt的使用//类名首字母大写,单词和单词之间首字母大写//函数名变量名称首字母小写,单词和单词之间首字母大写//快捷键//注释ctrl +/...h和.cpp切换 F4//帮助文档第一种方式F1第二种左侧按钮 1//D:\MyPrograme\QT\5.14.2\mingw73_32\bin创建第一个Qt程序2.1点击创建项目后,选择项目路径到以及给项目起名称...触发 // 用一个按钮调用下课 QPushButton *btn = new QPushButton("下课了",this);...重置窗口daxiao this->resize(600,400); connect(btn,&QPushButton::clicked,this,&Widget::classIsOver);信号触发信号...的菜单栏工具栏菜单栏,工具栏1QMainWindow1.1菜单栏最多有一个1.1.1 QMenuBar * bar MenuBar();1.1.2 setMenuBar(bar)1.1.3 QMenu

    42310

    如何在 React 中实现鼠标悬停显示文本?

    在 React 应用中,当用户将鼠标悬停在某个元素上时,我们经常需要显示一些相关的文本,以提供额外的信息或交互提示。...本文将详细介绍如何在 React 中实现鼠标悬停显示文本的功能,并提供示例代码帮助你理解和应用这个功能。...它提供了一个简单而灵活的方式,在鼠标悬停时显示文本提示。...通过传递 content 属性来设置悬停时显示的文本内容。在组件的返回值中,我们使用 render props 的方式来渲染触发区域的元素。...根据你的项目需求和个人喜好,选择适合的方法来实现鼠标悬停显示文本的功能。无论是简单的文本提示还是复杂的定制化工具提示,都可以通过 React 来实现。

    3.3K10

    【QT】常用控件(一)

    ,因为我们无法保证我D盘中的图片在你的D盘当中也有,我们还有两种办法,一种是相对路径,另一种是使用qrc,相对路径的方法就是在该项目的工作目录中建一个新的文件夹用来专门存放图片,比如文件夹的名字叫做photo.../photo/slm.jpg",但是这样的话还是会因为用户误删而导致照片无法使用,这时对于这种图片一类的小文件,我们可以使用qrc来直接将图片转化为二进制代码存储在项目当中,这样就永远不会丢失了 右键点击.../v/embed/427952 6、cursor API 说明 cursor() 获取到当前widget的cursor属性,返回QCursor对象,当鼠标悬停在该widget上时,就会显示出对应的形状...) 设置当前widget字体信息 这里的QFont有七种属性 family:字体 pointSize:字体大小 weight:字体粗细 bold:是否加粗 italic:是否倾斜 underline...() 获取该widget的focusPolicy,返回Qt::FocusPolicy setFocusPolicy(Qt::FocusPolicy) 设置widget的focusPolicy Qt::

    12710

    【Qt】QSS

    ⽐如 QComboBox 的下拉后的⾯板, ⽐如 QSpinBox 的上下按钮等. 可以通过⼦控件选择器 :: , 针对上述⼦控件进⾏样式设置 代码⽰例: 修改进度条的颜⾊ 在界⾯上创建⼀个进度条....当状态具备时, 控件被选中, 样式⽣效 当状态不具备时, 控件不被选中, 样式失效 使⽤ : 的⽅式定义伪类选择器 常⽤的伪类选择器: 这些状态可以使⽤ ! 来取反. ⽐如 :!...hover 就是⿏标离开控件时, :!pressed 就是⿏标松开时, 等等. 代码⽰例: 设置按钮的伪类样式....⼀个遵守盒模型的控件, 由上述⼏个部分构成. Content 矩形区域: 存放控件内容. ⽐如包含的⽂本/图标等. Border 矩形区域: 控件的边框. Padding 矩形区域: 内边距....在使⽤时也可以⾃定义画笔。在 Qt 中,QPen类中定义了 QPainter 应该如何绘制形状、线条和轮廓。同时通过 QPen类 可以设置画笔的线宽、颜⾊、样式、画刷等。

    14110

    学习 QT 过程中的一些笔记

    学习 QT 时候做的一些笔记 目录 目录 按钮常用控件 API QT 窗口体系 信号和槽 点击按钮关闭窗口 自定义信号和槽 当自定义信号和槽出现重载 无参信号和有参信号与槽连接 Lambda 表达式 利用...classOver(); } Widget::~Widget() { delete ui; } void Widget::classOver() { // 下课函数, 触发老师饿了的信号...teacherSignal_2); } Widget::~Widget() { delete ui; } void Widget::classOver() { // 下课函数, 触发老师饿了的信号...(a, b)) 和按引用 (如: (&a, &b)) 两种方式传递 可修改标示符 mutable 声明,加上 mutable 修饰符后,可以修改按值传递进来的拷贝 (修改的是拷贝,不是本体) 函数返回值...edit); 资源文件 将文件拷贝到项目位置下 右键项目 添加新文件 -> Qt -> Qt recourse File -> 给资源文件起名 res 生成 res.qrc open in editor

    1.2K40
    领券