首先——感谢你们的支持!一个月前我开始研究PyQt。在那段时间里,我遇到了很多问题,事实上总能在这里找到答案。在

直到现在。在

我有一个解决办法,但我认为这是一个愚蠢的,可能有一个适当的方法。我想更好地了解发生了什么事。在

代码如下:from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

class FormWidget(QWidget):

def __init__(self, parent):

super(FormWidget, self).__init__(parent)

# Create view with image in it

self.image = QGraphicsPixmapItem(QPixmap())

self.scene = QGraphicsScene()

self.scene.addItem(self.image)

self.view = QGraphicsView(self.scene)

self.hlayout = QHBoxLayout()

self.hlayout.addWidget(self.view)

self.setLayout(self.hlayout)

# self.view.keyPressEvent = self.keyPressEvent

def keyPressEvent(self, event):

key = event.key()

mod = int(event.modifiers())

print(

" Key 0x{:x}/{}/ {} {} {}".format(

self,

key,

event.text(),

" [+shift]" if event.modifiers() & Qt.SHIFT else "",

" [+ctrl]" if event.modifiers() & Qt.CTRL else "",

" [+alt]" if event.modifiers() & Qt.ALT else ""

)

)

class MainWindow(QMainWindow):

def __init__(self, parent=None):

super(MainWindow, self).__init__(parent)

form = FormWidget(self)

self.setCentralWidget(form)

if __name__ == '__main__':

import sys

app = QApplication(sys.argv)

mainWindow = MainWindow()

mainWindow.show()

sys.exit(app.exec_())

同样,所有键盘输入都由重载的keypresEvent()函数检测,箭头键除外。我已经找到了足够多的帖子来讨论这一点,我觉得这是因为子控件(自我观察)正在接收它们。我假设子窗口小部件实际上接收所有的击键操作,但忽略正在通过的按键,并吸收箭头键,这就是为什么它们不能访问父控件的keyPressEvent()函数的原因。似乎是这样,因为如果我取消了中间那行的注释:

^{pr2}$

它的行为与我预期的一样——父级的keypresEvent()获取所有的击键,包括箭头。在

我如何告诉子部件忽略所有的击键?我想也许是这样:self.view.setFocusPolicy(Qt.NoFocus)

当我添加它时,keypresevent()根本看不到任何键击。在

我想我也可以为子对象重载keypresEvent(),只需显式地将所有内容传递给父对象。但这似乎比不上我的克鲁格。在

我想我一定是误会了什么。在

谢谢。只是想学。。。在

python控件获取焦点_PyQt控件键盘焦点相关推荐

  1. Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法

    >>>[上节回顾:tkinter编程基本步骤.窗口基本属性及Toplevel控件的使用]<<< Python Tkinter教程(二)         这篇博客将详 ...

  2. android 控件遮盖,Android手机软键盘遮挡布局控件

    在Activity中的布局的下方有EditText获取焦点弹出软键盘的时候,如果不作处理,软键盘可能会遮挡输入框或者一些按键,这样的用户体验比较差. 这里整理了几种处理方式,可以使页面整体上移.并且提 ...

  3. Android 查找最近的可以获取焦点的控件(一) 指明控件下一个查找属性的查找

    查找最近的可以获取焦点的控件的方法focusSearch(@FocusRealDirection int direction)   查找最近的可以获取焦点的控件是通过View类的focusSearch ...

  4. python 动态调整控件大小_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...

    PyQt5动态(可拖动控件大小)布局控件QSplitter简介 PyQt还提供了特殊的布局管理器QSplitter.它可以动态地拖动子控件之间的边界,算是一个动态的布局管理器,QSplitter允许用 ...

  5. python爬silverlight_Python创建Silverlight控件编写过程经验分享

    Python编程语言可以帮助我们实现哪些功能呢?它的主要应用范围都包括哪些呢?我们今天先来了解一下有关Python创建Silverlight控件的相关实现方法,以此来初步熟悉一下这一语言的应用方式以及 ...

  6. VS 2019 MFC Edit Control控件自绘带软键盘

    实现功能:点击Edit控件后弹出软键盘,并能设置软键盘的输入最大者和最小值,软键盘采用非模态对话框创建,软键盘按钮字体颜色.背景颜色可以改变.Edit控件获得焦点和失去焦点后字体颜色和背景颜色动态可变 ...

  7. python表格控件_python表格控件

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! pyqt5表格控件qtableview简介在通常情况下,一个应用需要和一批数据进 ...

  8. python第三方库tkinter之Label控件和Button控件

    from tkinter import * window =Tk() window.title("dalaijun")#窗口标题 window["background&q ...

  9. Python调用外部EXE程序遍历窗体及控件并获取控件信息。

    背景 我的工作中经常手工运行一个windows程序(密码生成工具),获取该程序的计算结果,手工填到登录表单的中.该程序非常久远,已无人维护.根据凡是重复2次以上的工作都应该自动化原则,那么我来写个自动 ...

最新文章

  1. MySQL 设计规范(续)
  2. Linux系统基础网络配置老鸟精华篇
  3. C程序运用递归求阶乘
  4. 【VOC格式xml文件解析】——Python
  5. 为啥JAVA虚拟机不开发系统_理解Java虚拟机体系结构
  6. docker compose mysql_docker-compose部署MySQL
  7. 张朝阳寄语“校花”把参赛比做登山 走到不同阶段都是一种成就
  8. “不会SQL,干啥都不行!”资深研发:这是程序员的必备技能!
  9. Xshell远程连接Linux失败
  10. HTTP的REST服务简介
  11. 微信小程序使用Echarts 实现世界地图(其它地图同理)
  12. linux版印象笔记 for deepin
  13. 【洛谷 P5850】 calc加强版(生成函数+NTT)
  14. Linux ffs()函数
  15. 将Outlook中的邮件保存到本地磁盘,释放邮箱空间
  16. 在iPad平板上配置Exchange邮箱
  17. 机器学习如何借鉴人类的视觉识别学习?让我们从婴幼儿的视觉学习说起
  18. 信息安全系统设计基础_exp2
  19. Windows7系统下为右键菜单设置背景
  20. 郑州有哪些比较好的全国知名互联网公司(部分名单)?

热门文章

  1. android 实例-个人理财工具,Android 个人理财工具六:显示账单明细 下
  2. 第一部分:基础知识(第一章)一个XNA 手机程序
  3. Android笔记-Linux Kernel Ftrace (Function Trace)解析
  4. 违章查询源码 php,全国车辆违章查询API接口文档及demo
  5. A Blockchain-Based Decentralized Federated Learning Framework with Committee Consensus
  6. 使用POI的excel导入图片,并将图片上传至fastdfs文件服务器
  7. 数据结构 第八章 排序 作业(已批改)
  8. java搬砖问题流程图,搬砖问题 c++
  9. PHP著名开源项目汇总(LAMP)
  10. 新手如何练习文案写作