将参数传递给槽

2024-02-05

我想用一堆 QActions 和 QMenus 覆盖 mouseReleaseEvent...

connect(action1, SIGNAL(triggered()), this, SLOT(onStepIncreased()));

connect(action5, SIGNAL(triggered()), this, SLOT(onStepIncreased()));

connect(action10, SIGNAL(triggered()), this, SLOT(onStepIncreased()));

connect(action25, SIGNAL(triggered()), this, SLOT(onStepIncreased()));

connect(action50, SIGNAL(triggered()), this, SLOT(onStepIncreased()));

所以我想将参数传递给插槽onStepIncreased(你可以想象它们是 1、5、10、25、50)。你知道我该怎么做吗?


对于 Qt 5 和 C++11 编译器,执行此类操作的惯用方法是为connect:

connect(action1,  &QAction::triggered, this, [this]{ onStepIncreased(1); });
connect(action5,  &QAction::triggered, this, [this]{ onStepIncreased(5); });
connect(action10, &QAction::triggered, this, [this]{ onStepIncreased(10); });
connect(action25, &QAction::triggered, this, [this]{ onStepIncreased(25); });
connect(action50, &QAction::triggered, this, [this]{ onStepIncreased(50); });

第三个参数connect名义上是可选的。它用于设置函子将在其中执行的线程上下文。当函子使用QObject实例。如果函子使用多个QObject例如,它们应该有一些共同的父对象来管理它们的生命周期,并且函子应该引用该父对象,或者应该确保对象的寿命比函子长。

在 Windows 上,这适用于 MSVC 2012 及更高版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将参数传递给槽 的相关文章

  • 通过CMake实现Qt项目

    我正在尝试通过 Cmake 构建并运行非常简单且基本的 Qt 示例 删除 pro 文件 以下是Qt项目的代码 自动生成的Qt项目的目录结构为 Cmake my project name headers mainwindow h source
  • 无法在 QGLWidget 中设置所需的 OpenGL 版本

    我正在尝试在 Qt 4 8 2 中使用 QGLWidget 我注意到 QGLWidget 创建的默认上下文不显示 OpenGL 3 1 以上的任何输出 Qt wiki 有一个教程 http qt project org wiki How t
  • 加载 QPixmap 数据的更好方法

    更好的方法来做到这一点 没有QImage QImage image width height QImage Format RGB888 memcpy image bits m frameRGB gt data 0 height width
  • 如何在 QT 中绘制点?

    我正在用 QT 用 C 编写一个应用程序 其中有 n 个点并计算它的凸包 然而 一旦计算出来 我不知道如何绘制点并绘制船体的边界 制作菜单按钮等很简单 但我不确定我是否知道执行此操作的工具 你怎么做到这一点 图形视图 addEllipse
  • 如何使 Python、QT 和 Webkit 在无头服务器上工作?

    我有 Debian Linux 服务器 我用它来做各种事情 我希望它能够完成一些我需要定期完成的网络抓取工作 这段代码可以是在这里找到 http bit ly QeqvzX import sys from PyQt4 QtGui impor
  • Qt5和QML:如何使用WebEngine Quick Nano浏览器自动输入用户名和密码

    我正在使用编写一个小应用程序Qt and QML使用 Qt 文档中的示例WebEngine Quick Nano 浏览器 https doc snapshots qt io qt5 5 9 qtwebengine webengine qui
  • Qml 和模糊图像

    我想使用 QML 实现模糊效果 我找到了有关 效果 模糊 的参考资料 例子 http qt gitorious org lscunha qt components lscunha qt components blobs d78feec567
  • 用 C++/Qt 编写的程序中的 RTF / doc / docx 文本提取

    我正在写一些程序Qt https en wikipedia org wiki Qt 28software 29 C 我需要从中读取文本微软Word https en wikipedia org wiki Microsoft Word RTF
  • 获取 QListView 中所有可见项目的简单方法

    我正在尝试使用 Qt Framework 开发一个图像库应用程序 应用程序从所选文件夹加载所有图像 并使用 QListView 控件显示这些图像 但现在我想通过仅加载用户可见的图像来减少内存消耗 由于没有直接函数来获取视图中的所有可见项目
  • Qt 为什么使用 QString::number() 而不是 QLocale().toString()?

    我正在开发的应用程序将在许多国家推出 并且需要支持他们的语言 我一直在回顾我的代码并替换以下每个实例 QString number and QString toDouble with QLocale toString and QLocale
  • 使用 CMake 编译时更改头文件位置会导致缺少 vtable 错误

    对于一个大型 C 项目 我需要从 qmake 过渡到 CMake 但是在处理一个玩具示例时 我遇到了一些我不理解的行为 示例代码具有单个头文件 当该头文件移动到子目录中时 我收到 MainWindow 类缺少 vtable 的错误 CMak
  • 清除pyqt中布局中的所有小部件

    有没有办法清除 删除 布局中的所有小部件 self plot layout QtGui QGridLayout self plot layout setGeometry QtCore QRect 200 200 200 200 self r
  • C++ SQL 查询构建库

    我正在寻找一个提供与 c SelectQueryBuilder 库类似功能的 c 库 http www codeproject com Articles 13419 SelectQueryBuilder Building complex a
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • Qt 5.1.1 与 Visual Studio 2012 - 这些 QT 版本无法访问

    打开 Visual Studio 时出现此错误 我安装自http qt project org downloads http qt project org downloads 适用于 Windows 64 位的 Qt 5 1 1 VS 20
  • 连接到 QNetworkReply::error 信号

    我正在使用 Qt5 的新连接语法 QNetworkReply 有一个名为error http qt project org doc qt 5 0 qtnetwork qnetworkreply html error 2还有一个函数叫做err
  • 了解 Qt3D 创建的网格

    我创建了一个 Qt3D 网格 如下所示 Qt3DCore QEntity newEntity new Qt3DCore QEntity Qt3DExtras QConeMesh mesh new Qt3DExtras QConeMesh m
  • 无法运行 Qt 应用程序:找不到版本“Qt_5”

    我运行 Ubuntu 16 04 LTS 我的问题是我无法运行可以编译的 Qt5 应用程序 这是我尝试运行它时得到的结果 home user Desktop sconfig dist Release GNU Linux SCongif us
  • QML 列表视图拖放

    我想创建两个 qml 列表视图 可以执行两个功能 拖放一个列表中的项目以更改项目的顺序 跨列表拖放项目 项目将从一个列表中删除并添加到另一个列表中 根据 Qt 文档中的拖放示例 我决定创建两个访问同一列表模型的列表视图 列表模型中的每个项目

随机推荐

  • 共享 Facebook API ID 和密钥安全吗?

    我正在开发一个与 Facebook 通信的基于网络的开源应用程序 其中一个文件包含 Facebook API ID 和密钥 与世界其他地方分享这些信息可以吗 非常重要的是 您never分享您的应用秘密 您的应用程序 ID 完全不重要 任何访
  • 拥有 constexpr 静态字符串会导致链接器错误

    以下程序给我一个链接时错误 include
  • 从终端 (Bash) 将 xcodeproj 应用内购买转换为 pkg 文件或如何将 xcarchive 文件转换为 pkg 文件?

    我正在尝试创建一个 bash 脚本来自动创建应用内购买 pkg 文件 我现在的脚本成功创建了所有应用内购买 xcodeproj 项目 然后使用此命令将它们存档 xcodebuild scheme nameOfProject archive
  • 如何获取祖父母/祖先进程ID?

    我想知道 如果可能的话 如何获取进程的祖父母 或更进一步 的pid 更具体地说 我想要一个进程在进程树中打印其深度 例如 当从以下内容开始时 int main int creator id int getpid pid t pid1 for
  • 对于尚未在缓存中的地址,CLFLUSH 如何工作?

    我们正在尝试使用 Intel CLFLUSH 指令在用户空间刷新 Linux 中进程的缓存内容 我们创建一个非常简单的 C 程序 首先访问一个大数组 然后调用 CLFLUSH 刷新整个数组的虚拟地址空间 我们测量 CLFLUSH 刷新整个数
  • 如何根据 JSON 数组中的字段对表格视图单元格进行分组

    本质上 我使用 JSON 数据创建数组并形成表格视图 我希望表格单元格按 JSON 数组中的字段之一进行分组 JSON 数据如下所示 customer Customer1 number 122039120 customer Customer
  • 使用清单关闭应用程序缓存

    我正在编写一个使用 带有清单的应用程序缓存 的 HTML5 应用程序 但是 当我正在开发时 我想将其关闭 我尝试从标签中删除清单属性 并将清单文件中的所有内容切换到网络 尽管它确实在第一次更新时进行了更新 但所有后续更新仍然是从缓存而不是服
  • pnpm 工作区:* 依赖项

    我在 Docker 容器内安装部分 pnpm monorepo 时遇到严重问题 问题是docker build在某些方面失败devDependencies甚至不应该安装 devDependencies types node 17 0 12
  • 保留@OneToMany与@JoinColumn和@MapKeyColumn的关系

    我有两个实体 Entity Article Id GeneratedValue strategy GenerationType AUTO private Long id OneToMany fetch FetchType EAGER cas
  • 覆盖 PhoneGap Android 中的后退按钮

    我试图完成多个 addEventListener 但出了什么问题 例如 如果页面上有 3 个 div 第一个显示在开头 其他两个隐藏 div a a a gt div div div initially hidden div div ini
  • Jenkins:当 Maven 构建发生在 Docker 容器内时如何使用 JUnit 插件

    我正在尝试创建一个管道 Jenkins 在其中构建我的 Docker 映像 运行测试 然后在测试通过时部署容器 问题是我在 docker 容器内运行了 Maven 并且在运行容器之前我无法实际访问已发布的测试 我希望在测试通过后运行并部署
  • TclError:Google Colab 中没有显示名称且没有 $DISPLAY 环境变量

    这个错误 TclError no display name and no DISPLAY environment variable 当我尝试在 Google Colab 协作 Jupyter 笔记本 中运行 Python 3 6 程序时 出
  • 设置值后如何防止复选框动画

    在 Android gt 21 lollipop 上 如果我更改复选框的选中状态 它会执行动画 我想阻止它 我尝试暂时设置stateListAnimator to null 但这并没有帮助 如何防止动画出现 我遇到过同样的问题 这对我有帮助
  • Sinatra 不在日志文件中显示异常

    我从 Rails 转到 sinatra 在使用日志记录时遇到一些问题 我有一个 Sinatra 应用程序 它的日志记录如下 configure do Logger class eval alias write lt lt logger Lo
  • 以数据库用户身份部署到 Azure 时 SSDT 删除并重新创建权限

    我们有一个 SSDT 项目 其中包括用户 角色和权限 它运行得非常好 但最近迁移到 Azure 导致或可能突出了部署问题 在 Azure 之前 某些项目成员在主数据库上拥有一个具有足够权限来发布数据库的用户 在 Azure SQL Db 中
  • 如何设置 CircularProgressIndicator 的大小?

    我正在尝试为我的应用程序制作一个加载屏幕 我正在使用CircularProgressIndicator小部件 但我想知道是否有办法让它的高度和宽度更大 它太小了 那么 有人可以帮我解决这个问题吗 你可以把你的CircularProgress
  • 如何计算Python中两个日期之间一年中的天数

    例如 date 1 1 january 2000 date 2 17 november 2006 我想知道2000年 2001年 2006年日期1和日期2之间有多少天 所以我需要返回类似这样的东西 无论它是否在列表中或其他东西中 2000
  • 启动时间慢

    有什么办法可以加快Groovy的启动时间吗 除非按照建议使用某种单独运行的 Groovy 进程 我不太关心执行时间 但缓慢的启动使我无法在 Groovy 中进行开发 在我的机器上使用 Groovy 和 Ruby 启动和运行空脚本之间的简单比
  • gwt使用jquery效果可以吗?

    在我的 gwt 中 我有一个像下面这样触发的按钮来创建新的小部件 UiHandler buttonfire void addNewWidget ClickEvent event htmlPanelHolder add new MyCusto
  • 将参数传递给槽

    我想用一堆 QActions 和 QMenus 覆盖 mouseReleaseEvent connect action1 SIGNAL triggered this SLOT onStepIncreased connect action5