zoukankan      html  css  js  c++  java
  • PyQt5Day05--类型判定+对象删除

    1、类型判定

    (1)总体结构

    (2)API操作

     1 from PyQt5.Qt import *
     2 
     3 class Window(QWidget):
     4     def __init__(self):
     5         super().__init__()
     6         self.setWindowTitle("QObject的学习")
     7         self.resize(500, 500)
     8         self.setup_ui()
     9 
    10     def setup_ui(self):
    11         #self.QObject_ceshi()
    12         self.QObject_类型判定()
    13 
    14     def QObject_类型判定(self):
    15         # # *********** 测试API**************开始
    16         obj=QObject()
    17         w=QWidget()
    18         btn=QPushButton()
    19         label=QLabel()
    20 
    21         objs=[obj,w,btn,label]
    22         for o in objs:
    23             # print(o.isWidgetType())
    24             # print(o.inherits('QWidget'))
    25             print(o.inherits('QPushBotton'))
    26         # *********** 测试API**************结束
    27 
    28 
    29 if __name__ == '__main__':
    30     import sys
    31 
    32     app=QApplication(sys.argv)
    33     window=Window()
    34     window.show()
    35     sys.exit(app.exec_())

    (3)案例

     1 from PyQt5.Qt import *
     2 
     3 class Window(QWidget):
     4     def __init__(self):
     5         super().__init__()
     6         self.setWindowTitle("QObject的学习")
     7         self.resize(500, 500)
     8         self.setup_ui()
     9 
    10     def setup_ui(self):
    11         #self.QObject_ceshi()
    12         self.QObject_类型判定()
    13 
    14     def QObject_类型判定(self):
    15         # # *********** 测试API**************开始
    16         # obj=QObject()
    17         # w=QWidget()
    18         # btn=QPushButton()
    19         # label=QLabel()
    20         # 
    21         # objs=[obj,w,btn,label]
    22         # for o in objs:
    23         #     # print(o.isWidgetType())
    24         #     # print(o.inherits('QWidget'))
    25         #     print(o.inherits('QPushBotton'))
    26         # *********** 测试API**************结束
    27         
    28         # **************案例*****************开始
    29         label = QLabel(self)
    30         label.setText("社会社会社会")
    31         label.move(100, 100)
    32         
    33         label2 = QLabel(self)
    34         label2.setText("哈哈哈哈")
    35         label2.move(150, 150)
    36         
    37         btn = QPushButton(self)
    38         btn.setText("点我")
    39         btn.move(200, 200)
    40         
    41         for widget in self.children():
    42             # print(widget)
    43             if widget.inherits("QLabel"):
    44                 # print("是")
    45                 widget.setStyleSheet('background-color:green')
    46         # **************案例*****************结束
    47 
    48 if __name__ == '__main__':
    49     import sys
    50 
    51     app=QApplication(sys.argv)
    52     window=Window()
    53     window.show()
    54     sys.exit(app.exec_())
    View Code

    2、对象删除

    (1)总体框架

    (2)API操作

     1 from PyQt5.Qt import *
     2 
     3 class Window(QWidget):
     4     def __init__(self):
     5         super().__init__()
     6         self.setWindowTitle("QObject的学习")
     7         self.resize(500, 500)
     8         self.setup_ui()
     9 
    10     def setup_ui(self):
    11         #self.QObject_ceshi()
    12         self.QObject_对象删除()
    13 
    14     def QObject_对象删除(self):
    15         # *********** 测试API**************开始
    16         obj1 = QObject()
    17         self.obj1=obj1
    18         obj2 = QObject()
    19         obj3 = QObject()
    20 
    21         obj3.setParent(obj2)
    22         obj2.setParent(obj1)
    23 
    24         obj1.destroyed.connect(lambda:print("obj1被释放了"))
    25         obj2.destroyed.connect(lambda: print("obj2被释放了"))
    26         obj3.destroyed.connect(lambda: print("obj3被释放了"))
    27 
    28         # del obj2
    29         obj2.deleteLater()   # 稍后删除
    30         print(obj1.children()) # 先完成再删除
    31         # *********** 测试API**************结束
    
    36 
    37 if __name__ == '__main__':
    38     import sys
    39 
    40     app=QApplication(sys.argv)
    41     window=Window()
    42     window.show()
    43     sys.exit(app.exec_())

    时间:2020-03-03     00:34:44

    作者:931935931(QQ)

  • 相关阅读:
    Data_Structure01-绪论作业
    JAVA课程设计——多源教学数据管理系统
    博客作业06--图
    博客作业05--查找
    博客作业04--树
    博客作业03--栈和队列
    博客作业2---线性表
    博客作业01-抽象数据类型
    C语言最后一次作业--总结报告
    C语言博客作业--函数嵌套调用
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12399203.html
Copyright © 2011-2022 走看看