防止 QScintilla 中触发键盘快捷键(示例代码)

2023-12-02

我想防止在 QScintilla 小部件中编辑代码时触发应用程序键盘快捷键,就像普通的 QLineEdit 字段不会触发一样。

在下面的可执行示例代码中,无法在 QScintilla 小部件中键入空格,因为空格键已设置为快捷方式,但在 QLineEdit 中它可以正常工作。

我想知道这是否与 QScintilla 未正确抓取键盘输入有关(尽管显然确实如此,因为可以在其中输入字符)。

import sys,os
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import Qsci

class MyWidget(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.butt = QPushButton("button!!")       
        self.act = QAction("new act",self)
        self.act.setShortcut(QKeySequence(Qt.Key_Space))
        self.act.triggered.connect(tjosan)
        self.butt.clicked.connect(self.act.trigger)
        self.sci = Qsci.QsciScintilla()
        vbox = QVBoxLayout()    
        vbox.addWidget(self.sci)
        vbox.addWidget(QLineEdit())
        vbox.addWidget(self.butt)
        self.setLayout(vbox)
        self.addAction(self.act)

def tjosan():
    print "action !!!"

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widg = MyWidget()
    widg.show()
    sys.exit(app.exec_())

您需要过滤 ShortcutOverride 事件以获得与 QLineEdit 相同的行为。这是示例的编辑版本,演示了一种方法:

import sys,os
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import Qsci

class MyWidget(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.butt = QPushButton("button!!")
        self.act = QAction("new act",self)
        self.act.setShortcut(QKeySequence(Qt.Key_Space))
        self.act.triggered.connect(tjosan)
        self.butt.clicked.connect(self.act.trigger)
        self.sci = Qsci.QsciScintilla()
        self.sci.installEventFilter(self)
        vbox = QVBoxLayout()
        vbox.addWidget(self.sci)
        vbox.addWidget(QLineEdit())
        vbox.addWidget(self.butt)
        self.setLayout(vbox)
        self.addAction(self.act)

    def eventFilter(self, widget, event):
        if (event.type() == QEvent.ShortcutOverride and
            widget is self.sci):
            print 'ShortcutOverride'
            event.accept()
            return True
        return QWidget.eventFilter(self, widget, event)

def tjosan():
    print "action !!!"

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

防止 QScintilla 中触发键盘快捷键(示例代码) 的相关文章

  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入
  • 带上下文菜单的 QTreeWidget,无法获取正确的项目

    我有以下代码来创建QTreeWidget和一个包含 2 个操作的上下文菜单 import sys from PyQt5 import QtCore QtWidgets class Dialog QtWidgets QDialog def i
  • 在 VScode 中使用箭头键导航文件资源管理器时立即打开文件

    Currently I navigate the file tree in VScode with arrow keys and have to press Cmd Down to display the file in the edito
  • QML 圆规

    我目前正在创建一个虚拟仪表板 我想获得针后面的进度条类型 如以下链接所示 https forum qt io topic 89307 qml circular gauge styling needle trailing colour glo
  • macOS Sierra 上的 Python PyQt

    如何在装有 OS X Sierra 的 Mac 上使用 PyQt 4 或 5 看来我必须等待 PyQt 的新版本 但我不确定这是否属实 确保你有homebrew https brew sh安装 使用以下命令 brew tap cartr q
  • 日历小部件的特定单元格如何着色?

    日历小部件的特定单元格如何着色 我认为你应该扩展 QCalendar 类并添加一些行为 我在这里找到了一些东西 http www qtforum org article 21614 paintcell and qcalendarwidget
  • QTextEdit 与 QPlainTextEdit

    有什么区别QTextEdit and QPlainTextEdit 为什么要使用其中一种而不是另一种 我正在编写一个文本编辑器作为学习 Qt5 的练习 现在我想知道是否使用QTextEdit or QPlainTextEdit 到目前为止我
  • 在 PyQt5 中,如何使用拖放正确移动 QTableView 中的行

    我 只是 希望能够使用QTableView用于移动现有行的拖放机制 我找到了很多来源 例如here https stackoverflow com questions 12168610 qtableview drag move rows h
  • Qt 文本选择白线和文本宽度

    我想在 QTextEdit 中自定义文本选择 我想要两件事 选择时删除空格 线条 能够选择选择的宽度 或者小部件宽度 或文本宽度 空白 线条 通常 我想要的是 来自 Bear 应用程序 熊文本选择 在使用 QTextEdit 小部件时 我注
  • 自动滚动 PyQT QTextWidget

    我怎么能够自动滚屏到我的底部QTextEdit 在我的 GUI 初始化函数中 self mytext QTextEdit self cursor QTextCursor self mytext document self mytext se
  • qtcreator中C++14的编译

    我有一个 qt 项目 其中包含以下部分C 14 最近 我改变了我的 ubuntu 发行版 现在我有 16 04 LTS 并且安装了 Qt Creator 4 02 建于 6 月 13 日 为了启用C 14编译 我放入项目文件中 QMAKE
  • 如何增加pyqt4中QTableWidget中标题标签的行高和行项目的字体大小

    在这里我想增加标题标签的行高和单元格项目的字体大小 在我的代码中我使用self table setRowHeight 方法 但它不起作用 所以请告诉我他们有什么方法可以增加标题标签的行高和单元格项目的字体大小 下面给出的是我的代码 impo
  • 如何释放Qthread对象的内存?

    我做过这样的事情 in the mainwindow s constructor QThread thr new QThread soundWorker work new soundWorker connect this SIGNAL pl
  • QNetworkAccessManager 的替代方案

    我正在BB10中绘制地图 地图被划分为图块 开始时 用户给出经度 纬度和缩放级别 地图将显示在该坐标处 我通过使用 QNetworkAccessManager 执行 http 请求来获得单个图块 首先下载 7x5 块 但问题是 当用户开始在
  • 用Qt制作无边框窗口

    我是 Qt C 新手 我下载了最新的 Windows 版本 做了一些教程 非常棒 我看到了 Qt 框架具有的一些样式选项 而且它很棒 但现在我需要构建我的应用程序 其主窗口 形式 是用没有矩形边框 无边框 的图像设计 蒙皮的 我怎样才能用Q
  • Qt 要包含哪些标头?

    使用 Qt 使用 C 进行编程时 我应该包含哪些内容 仅包含 2 个 include
  • 如何将 qmake 转换为 cmake?

    我有一个 pro我的项目上的文件 但现在我想将其移植到CMakeLists txt文件 我怎样才能做到这一点 QT core QT gui CONFIG c 11 TARGET test CONFIG console CONFIG app
  • QTextEdit:仅当滚动条位于底部时自动向下滚动

    有一个 QTextEdit 显示相当多的文本 它不可编辑 假设我想在开头阅读一些内容 向上滚动 但随后添加了一个新行 并且滚动条自动转到底部 我在使用各种程序时遇到类似的问题 无论它们是用什么语言编写的 如何处理这个问题 当向文本添加新行时
  • 防止 QGraphicsItem 移出 QGraphicsScene

    我有一个场景 其固定尺寸从 0 0 到 481 270 scene gt setSceneRect 0 0 481 270 在里面 我有一个习惯GraphicsItem多亏了旗帜我可以移动它ItemisMovable 但我希望它留在场景中
  • VS2010 CTRL+M 键盘快捷键已停止工作

    I have a strange problem which seems to have recently appeared I used to be able to press the keyboard shortcut CTRL M O

随机推荐

  • 如何在.net core项目中设置soapclient的超时

    我必须在 Net Core 2 0 项目中使用 SOAP 服务 我添加了服务参考 如以下链接所述 缺少链接 404 对于某些方法 服务运行良好 但是 某些方法需要很长时间 由于操作服务正在执行 在这种情况下程序会抛出异常 System Ne
  • 如何从我自己的网站更新 Facebook 状态?

    我有自己的网站 正在创建博客 新闻条目 但我希望在添加它们时将它们直接上传到我的 Facebook 页面 有没有一种简单的方法可以做到这一点 我的代码是这样的 是否有代码或 API 我可以用来更新我的 Facebook 页面 您需要注册成为
  • 带有post请求和参数作为Json对象android的HttpUrlConnection

    您好 我正在开发小型 Android 应用程序 我想在其中使用 HttpUrlConnection post 请求 并将 params 作为 json 对象 但它对我不起作用我是通过以下方式做到的 try URL url DataOutpu
  • 服务器端包含在expressjs中

    是否可以使用express js 生成服务器端包含 我正在尝试在不同页面上重用页眉和页脚标记 以便我可以在一处进行页眉 页脚更改 尝试使用部分 您必须在一些模板引擎之间进行选择 默认模板引擎是jade 因此为此您必须执行以下操作 创建一个文
  • 在.net 4.5项目中使用.net 2.0 dll(vshost在调试时崩溃)

    我正在尝试使用通过 dotnetbuilder 从 matlab 创建的 dll 文件 http www mathworks se help dotnetbuilder ug create a net component from matl
  • 在 OpenCV 中匹配相似图像

    我有两组图像 H 和 L H 由 512x512 图像组成 L 包含 H 中的所有图像 但缩小到 32x32 128x128 并带有有损压缩产生的压缩伪影 使用 OpenCV 将 H 中的图像与 L 中最接近的图像进行匹配的最佳方法是什么
  • 扑克牌翻转动画

    您知道有哪些免费组件 库可以实现 3D 翻转效果吗 演示在这里 斯诺克电视 这是一个尝试使用SetWorldTransform type TForm1 class TForm PaintBox1 TPaintBox Button1 TBut
  • 使所有按钮大小相同

    请看下面的代码 import javax swing import java awt event import java awt public class GUI extends JFrame private JButton open pr
  • 为什么整个系统事件溯源是反模式?

    我目前正在设计一个新的企业系统 该系统的目的是跟踪 显示客户与公司的互动 即事件 并通知员工 使用事件源模式来保存所收集的所有客户交互 事件的分类帐似乎非常合适 因为我们所有其他域对象都源自事件流 然而 我看到一篇文章说基于事件源的整个系统
  • 不想在 jqGrid 页面加载后第一次显示排序图标

    我正在使用 jqGrid 并通过 JSON 加载数据 当我第一次获取数据时 我使用自定义方法对其进行排序并将该数据传递到网格 但它总是在第一列上显示排序图标 我不想显示该图标 因为自定义方法使用多个计算对数据进行排序 但是当排序图标出现在第
  • 如何使用 linq 对列表及其子项及其子项进行排序?

    我有一个亲子关系 类似于 public class MyType public IList
  • 未捕获的错误:元素类型无效:需要一个字符串(对于内置组件)

    I am getting this error I have defined all components in index js and I am using react dom 网络打包机本身正在编译 没有错误或警告 错误 未捕获错误
  • 使用@PropertySource配置Spring属性

    在下面的 Spring 配置类中 我通过 PropertySource 加载 app properties 文件 并使用属性文件中的配置构造 2 个不同的 DBCP 数据源 尽管一切正常 但我不喜欢使用注释为每个配置属性声明一个变量以构造数
  • 获取具有明确标准的最新文档

    情况 我无法找到执行特定 MongoDb 查询的好方法 首先 这是我想要执行的查询类型 假设有一个简单的数据库 通过电子刷卡记录进入和退出事件 以及可能的其他操作 并不重要 所以有一个集合叫做swipelog简单的文档如下所示 id Obj
  • 即使驱动器存在,也无法检索用户的 mysite URL

    当使用 PHP 库查询给定驱动器的图表时 我收到400 Unable to retrieve user s mysite URL or 429 Too many requests 例如 当我打电话时https graph microsoft
  • SQL WHERE 子句中的聚合函数

    大学考试时有一道题 是否可以使用聚合函数SQL WHERE条款 我一直认为这是不可能的 而且我也找不到任何例子如何做到这一点 但我的答案被标记为错误 现在我想知道在哪些情况下可以在WHERE 另外 如果不可能的话 最好能获得描述它的规范的链
  • PDO - 将字段名称作为变量传递

    我只是将代码从 mysql query 样式命令迁移到 PDO 样式 但遇到了问题 旧代码如下所示 query list menu SELECT GET section name from myl menu hide show WHERE
  • Vagrant ssh 'private_key_path` 文件必须存在

    我在 vagrant up 期间收到此错误 There are errors in the configuration of this machine Please fix the following errors and try agai
  • Java:使用itext读取PDF书签名称

    我正在处理包含多个文档的单个 PDF 每个文档都有一个书签 我需要读取我正在构建的调节应用程序的书签名称 下面的代码对我不起作用 我试图将书签名称放入title细绳 有人可以提供任何指导吗 非常感谢 PdfReader reader new
  • 防止 QScintilla 中触发键盘快捷键(示例代码)

    我想防止在 QScintilla 小部件中编辑代码时触发应用程序键盘快捷键 就像普通的 QLineEdit 字段不会触发一样 在下面的可执行示例代码中 无法在 QScintilla 小部件中键入空格 因为空格键已设置为快捷方式 但在 QLi