如何将多个 QShortcuts 连接到 Qt 中的一个插槽?并找出插槽内是哪个快捷方式发出的?

     2023-02-16     277

关键词:

【中文标题】如何将多个 QShortcuts 连接到 Qt 中的一个插槽?并找出插槽内是哪个快捷方式发出的?【英文标题】:How to connect multiple QShortcuts to one slot in Qt? And find out inside the slot which shortcut emitted it? 【发布时间】:2012-02-21 02:22:34 【问题描述】:

可以传参数吗?

类似这样的:

    shortcut_key_one,channelSLot(int) shortcut_key_two,channelSLot(int) shortcut_key_three,channelSLot(int)

【问题讨论】:

【参考方案1】:

如果快捷方式无关紧要,请使用QAction::setShortcuts 将快捷方式分配给QAction

font_increase_action_ = new QAction(tr("&Increase font sizes"), this);
font_increase_action_->setShortcuts(QList<QKeySequence>()
                                    << Qt::CTRL + Qt::Key_BracketRight
                                    << Qt::CTRL + Qt::Key_Greater);
connect(font_increase_action_, SIGNAL(triggered()), SLOT(IncreaseFontSizes()));

如果您真的需要知道按下的是哪个快捷方式,您可以将每个快捷方式分配给单独的 QAction,然后使用QSignalMapper。

【讨论】:

【参考方案2】:

好吧,完全按照您的要求进行操作,您可以跟踪所有 QShortcut 对象,然后使用插槽内的 sender() 函数来确定哪个 QShortcut 导致了插槽被触发。

但是,如果可能的话,听起来您非常想考虑使用和覆盖QWidget::keyPressEvent()。询问 QKeyEvent 对象按下了哪个键比做所有这些疯狂的 QShortcut 混乱要容易得多。

【讨论】:

如何将 Crystal 报表连接到多个数据库?

】如何将Crystal报表连接到多个数据库?【英文标题】:HowdoIconnectCrystalreportstomultipledatabase?【发布时间】:2016-01-2616:13:42【问题描述】:我有一个带有下拉菜单的网页。在下拉列表中有来自服务器的数据库列表。选择下拉的文档... 查看详情

如何将多个 PDF 页面连接到一个页面

】如何将多个PDF页面连接到一个页面【英文标题】:HowtojoinmultiplePDFpagestoasinglePage【发布时间】:2013-04-1317:29:24【问题描述】:我有一个4页的PDF。我想创建另一个PDF,其中页面在单个页面中一个接一个地放置(垂直对齐)。可以... 查看详情

如何将相机预览流从android连接到Qt5?

】如何将相机预览流从android连接到Qt5?【英文标题】:howtointerfacecamerapreviewstreamfromandroidtoQt5?【发布时间】:2014-03-1704:51:42【问题描述】:谁知道如何将相机预览流数据从android接口到Qt5?我想在Qt上显示预览流。然后我会将重新... 查看详情

如何将多个csv连接到xarray并定义坐标?

】如何将多个csv连接到xarray并定义坐标?【英文标题】:Howtoconcatenatemultiplecsvtoxarrayanddefinecoordinates?【发布时间】:2020-02-0923:31:15【问题描述】:我有多个csv文件,具有相同的行和列,并且它们包含的数据因日期而异。每个csv文... 查看详情

Qt:如何将不同类的静态信号连接到插槽?

】Qt:如何将不同类的静态信号连接到插槽?【英文标题】:Qt:Howtoconnectstaticsignalfromdifferentclasstoslot?【发布时间】:2019-01-1122:05:02【问题描述】:假设我有一个普通的Qt类MyQtClass和一个只有静态成员的类MyClass。如果我想访问MyQtCl... 查看详情

如何将多个扬声器连接在一起并同时连接到手机?

】如何将多个扬声器连接在一起并同时连接到手机?【英文标题】:Howtoconnectmultiplespeakerstogetherandconnecttoaphoneatthesametime?【发布时间】:2014-06-1613:34:47【问题描述】:是否可以将4个扬声器连接在一起,而这4个扬声器需要连接到... 查看详情

QT:将 QMediaPlayer 连接到 QProgressBar?

】QT:将QMediaPlayer连接到QProgressBar?【英文标题】:QT:ConnectQMediaPlayertoQProgressBar?【发布时间】:2017-09-2817:32:08【问题描述】:我想将QProgressBar连接到QMediaPlayer以在QT5中进行歌曲进度。我怎样才能做到这一点?任何帮助将不胜感激... 查看详情

将 qml 信号连接到 Qt

】将qml信号连接到Qt【英文标题】:Connectingqml-signalstoQt【发布时间】:2011-05-1008:41:19【问题描述】:我正在尝试在我的代码中使用qml-grid视图。我正在尝试将它与我的C++代码结合起来。我已经动态创建了一个列表视图模型并通过... 查看详情

PyQt - 如何将多个信号连接到同一个小部件

】PyQt-如何将多个信号连接到同一个小部件【英文标题】:PyQt-Howtoconnectmultiplesignalstothesamewidget【发布时间】:2012-09-1119:02:45【问题描述】:[]All1[]All2[]checkbox1A[]checkbox1B[]checkbox2A[]checkbox2B根据上面的图表,需要做一些事情:所有... 查看详情

如何将信号连接到插槽

】如何将信号连接到插槽【英文标题】:Howtoconnectasignaltoaslot【发布时间】:2013-04-0618:46:01【问题描述】:我让Qt-Creator使用Qt为我生成了一个基本的窗口应用程序。我在那里添加了一个按钮并尝试将其连接到一个插槽。它编译正... 查看详情

如何在单个 Kafka Streams 应用程序中连接到多个集群?

】如何在单个KafkaStreams应用程序中连接到多个集群?【英文标题】:HowtoconnecttomultipleclustersinasingleKafkaStreamsapplication?【发布时间】:2018-02-0112:20:27【问题描述】:在KafkaStreamsDeveloperGuide中写道:KafkaStreams应用程序只能与单个Kafka... 查看详情

Qt将信号连接到插槽

】Qt将信号连接到插槽【英文标题】:Qtconnectsignaltoslot【发布时间】:2013-08-2616:47:47【问题描述】:我有一个包含QSplitter小部件(以及其他小部件)的主窗口类。此拆分器的内容由另一个类中的小部件填充。在另一个Widgwt中,我... 查看详情

如何将多个套接字后端应用程序连接到单个前端

】如何将多个套接字后端应用程序连接到单个前端【英文标题】:howtoconnectmultiplesocketbackendappstoasinglefrontend【发布时间】:2022-01-0300:39:39【问题描述】:我正在尝试创建一个包含两方之间实时通信的网站:代理和客户,通信是通... 查看详情

在 Qt/C++ 中,有没有办法将按钮单击事件列表连接到一个插槽?

】在Qt/C++中,有没有办法将按钮单击事件列表连接到一个插槽?【英文标题】:InQt/C++,isthereawaytoconnectalistofbuttonclickeventstooneslot?【发布时间】:2015-10-0206:05:16【问题描述】:在Qt/C++中,我有一系列按钮,我想通过单个事件处理程... 查看详情

如何使用 IBOutletCollection 将多个 UIImageViews 连接到同一个插座?

】如何使用IBOutletCollection将多个UIImageViews连接到同一个插座?【英文标题】:HowcanIuseIBOutletCollectiontoconnectmultipleUIImageViewstothesameoutlet?【发布时间】:2013-04-0514:46:56【问题描述】:我有10个UIImageViews做同样的事情(他们有一些用计... 查看详情

如何在 Qt 应用程序中连接到 MySQL 服务器

】如何在Qt应用程序中连接到MySQL服务器【英文标题】:HowtoconnecttoaMySQLserverinaQtapplication【发布时间】:2016-02-0316:39:24【问题描述】:我需要在一个Qt应用程序中连接一个MySQL服务器,所以我写了如下代码:QSqlDatabasedb=QSqlDatabase::ad... 查看详情

Qt5:无法将信号连接到插槽

】Qt5:无法将信号连接到插槽【英文标题】:Qt5:couldnotconnectsignaltoslot【发布时间】:2015-03-3113:13:16【问题描述】:我正在尝试升级我的旧应用程序..(再添加一项功能)。所以,我在“文件”菜单中又添加了一项。<addactionname=... 查看详情

What Joins 用于将多个表连接到一个视图中

】WhatJoins用于将多个表连接到一个视图中【英文标题】:WhatJoinstousetojoinmultipletablestogetherintooneview【发布时间】:2013-03-0612:14:45【问题描述】:我在mysql中有一个带有多个表的数据库,我想将多个表连接到一个视图中,这样我就... 查看详情