首页 > 软件开发 > PYTHON >

PyQt5-如何用控件判定对控件类型进行过滤操作

来源:互联网 2023-03-16 19:16:58 64

判断是否是控件isWidgetType(),判断父类inherits()。以及随后的应用。sJu办公区 - 实用经验教程分享!

1.控件判断的两个相关函数

  • 1

    obj.isWidgetType() 判断对象是否是一个控件,返回布尔值。sJu办公区 - 实用经验教程分享!

    如果是控件返回True。否则返回False。sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 2

    obj.inherits('classname')判断obj是否直接继承参数提供的类。sJu办公区 - 实用经验教程分享!

    如果是返回True。否则返回False。

    sJu办公区 - 实用经验教程分享!

    sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 2相关内容未经许可获取自百度经验
  • 2.类型的过滤操作

  • 1

    如果一个交互界面有很多类型,很多种控件,这时如果要对某类控件进行单独的改变,就可以利用继承关系来进行过滤。举个例子:sJu办公区 - 实用经验教程分享!

    首先建立一个窗口框架。sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 2

    给窗口添加若干组件,并设置必要的属性。sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 3

    获取父控件下的所有子类:sJu办公区 - 实用经验教程分享!

    使用self.children()函数,返回一个子控件的列表。sJu办公区 - 实用经验教程分享!

    self是父控件对象。sJu办公区 - 实用经验教程分享!

    需要注意的是childern()函数只查找下一层子对象。sJu办公区 - 实用经验教程分享!

    1PyQt5-如何对QObject对象的父子关系进行操作sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 4

    利用obj.inherits('classname')函数来过滤想要的控件类型,并设置样式:sJu办公区 - 实用经验教程分享!

    例如:sJu办公区 - 实用经验教程分享!

    for x in self.children():

    sJu办公区 - 实用经验教程分享!

    if x.inherits('QPushButton'):

    sJu办公区 - 实用经验教程分享!

    x.setStyleSheet('background-color:cyan')

    sJu办公区 - 实用经验教程分享!

    elif x.inherits('QLineEdit'):

    sJu办公区 - 实用经验教程分享!

    x.setStyleSheet('background-color:white')sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 5

    查找子层还可以用findChildren(指定控件类)函数,查找子控件对象,再用inherits()函数过滤。sJu办公区 - 实用经验教程分享!

    例如:sJu办公区 - 实用经验教程分享!

    qlist=self.findChildren((QPushButton,QLineEdit))

    sJu办公区 - 实用经验教程分享!

    for x in qlist:

    sJu办公区 - 实用经验教程分享!

    if x.inherits('QPushButton'):

    sJu办公区 - 实用经验教程分享!

    x.setStyleSheet('background-color:yellow')

    sJu办公区 - 实用经验教程分享!

    elif x.inherits('QLineEdit'):

    sJu办公区 - 实用经验教程分享!

    x.setStyleSheet('background-color:cyan')sJu办公区 - 实用经验教程分享!

    PyQt5-如何用控件判定对控件类型进行过滤操作sJu办公区 - 实用经验教程分享!

  • 后话

  • 1

    以上是简单的例子,只为说明问题。sJu办公区 - 实用经验教程分享!

    利用父子继承关系,经过判断,赛选出需要的控件,为其添加样式。sJu办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!sJu办公区 - 实用经验教程分享!


    标签: python

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码