【Python】【Day5】图像管理系统笔记_图形交互界面_PyQt5【4】【控件设置 事件转发】
admin
2024-03-25 17:40:42
0

控件

控件的大小位置

  • .move()
    操控 x 和 y,也就是 pos。(包括窗口框架)
move(x, y)
  • .resize()
    操控宽高(不包括窗口框架)
resize(width, height)
  • .setGeometry
    参照为用户区域。
setGeometry(x_noFrame, y_noFrame, width, height)
  • .adjustSize()
    根据内容自适应大小。
    比如为标签增加内容后,使用该函数自适应大小:
def ITCB_CopyLabel():label.setText(label.text() + "copy")label.adjustSize()
  • .setFixedSize()
    设定固定尺寸。

内容边距

作用:
设置控件中内容的显示范围。
注意:文本内容在内容区域中靠左,垂直方向居中。

  • setContensMargins()
    设置内容边距。
  • getContentsMargins()
    获取内容边距。
  • contensRect()
    获取内容区域。

事件转发

  当几个对象有父子关系时,子对象触发的事件首先转发给子对象事件函数处理,当子对象函数未进行处理时,转发到其父对象事件函数,层层转发,直到事件函数进行了处理或者没有父对象可以转发为止。

  • 注意,当对象为标签且事件为鼠标点击时,很容易观察到这种现象,因为标签的主要功能是展示,所以 PyQt 并没有对点击事件进行处理,当我们没有重载该事件函数时,事件便会被层层转发。

  • 而按钮则不同,即使我们没有重载事件函数,PyQt 也已经内置了事件处理函数,所以一般点击事件不会被层层转发。

  • 几个方法示例:

    • accept()
      强制标识事件已经被处理(不会被转发)。
    • isAccepted()
      返回事件是否已经被处理。
    • ignore()
      强制标识事件未被处理,事件将会转发给父对象。
    def mousePressEvent(self, evt) -> None:evt.accept()evt.isAccepted()evt.ignore()

相关内容

热门资讯

美国2月和3月非农就业人数净下... 5月8日消息,美国3月非农就业人数修正至增加18.5万人,2月修正至减少15.6万人。(广角观察)
元道通信:涉嫌在证券发行文件中... 5月8日消息,元道通信(301139.SZ)公告称,公司及相关当事人收到证监会《行政处罚事先告知书》...
巴基斯坦KSE-100指数收盘... 5月8日消息,巴基斯坦KSE-100指数收盘下跌0.9%,至171,353.5点。(科股宝播报)
输送电量288亿千瓦时,陇电入... 5月8日消息,中国首个“风光火储一体化”大型综合能源基地外送工程——甘肃陇东至山东±800千伏特高压...
威迈斯:拟投资8.12亿元建设... 5月8日消息,威迈斯(688612.SH)公告称,公司拟投资约8.12亿元(含土地出让金)在深圳市南...
贱兮兮的,无语了 贱兮兮的,无... 图:爱丽丝德丝最近遇到一种荒诞情形。比如我定了酒店,但临时计划有变,不得不取消订单。按下「取消」按钮...
雷总,不是说笑笑就好吗 雷总说... 雷军,不是说大家笑笑就好了吗?是的,前几天猫崽写的。昨天,雷军回应了“武汉过早,吃面被小女孩吐槽”一...
赛道爆发!这一关键基础材料迎量... 今日A股先进封装板块持续走强,板块指数稳步走高,盘中震荡拉升、尾盘再度发力,成为科技赛道核心亮点。隔...
警方通报:杨某某(女,36岁)... @广德公安 6月22日,安徽省广德市公安局发布警情通报: 2026年6月20日15时36分许,我市发...
上交所:4月27日至5月8日对... 5月8日消息,2026年4月27日至2026年5月8日,上交所对351起拉抬打压、虚假申报等证券异常...