zoukankan      html  css  js  c++  java
  • PyQt5Day03--程序基本结构之面向对象版本+控件学习

    1、程序基本结构之面向对象版本

    (1)开发阶段(自己写好并测试)——设置为模版qto

     1 from PyQt5.Qt import *
     2 
     3 class Window(QWidget):
     4     def __init__(self):
     5         super().__init__()
     6         self.setWindowTitle("帅炸了")
     7         self.resize(500, 500)
     8         self.setup_ui()
     9 
    10     def setup_ui(self):
    11         label=QLabel(self)
    12         label.setText('你好,明天')
    13 
    14 if __name__ == '__main__':
    15     import sys
    16 
    17     app=QApplication(sys.argv)
    18 
    19     window=Window()
    20     window.show()
    21     sys.exit(app.exec_())

    (2)别人调用时:

     1 import sys
     2 from PyQt5.Qt import *
     3 from menu import Window
     4 
     5 app=QApplication(sys.argv)
     6 
     7 window=Window()
     8 
     9 window.show()
    10 sys.exit(app.exec_())

    2、控件学习

    (1)概念

      控件:一个程序界面上的各个独立元素——一块矩形区域;

      具备不同的功能:用户点击、接收用户输入、展示内容、存放其他控件等等

      常用控件:按钮、输入控件、展示控件、容器控件、结构控件、滚动控件、辅助控件和其他。如下图所示:

    3、对象的名称和属性的设置

       Object的总体框架学习如下:

      对象的名称和属性学习框架:

    (1)QObject.qss的设置

     1 QLabel#notice{
     2     font-size:20px;
     3     color:gray;
     4     border:lpx solid gray;
     5     border-radius:8px;
     6 }
     7 QLabel#notice[notice_level="normal"]{
     8     color:green;
     9     border-color:green
    10 }
    11 QLabel#notice[notice_level="warning"]{
    12     color:yellow;
    13     border-color:yellow
    14 }
    15 QLabel#notice[notice_level="error"]{
    16     color:red;
    17     border-color:red
    18 }

    (2)对象的相关操作以及案例:

     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_dxsx()
    13 
    14     def QObject_ceshi(self):
    15         mros=QObject.mro()  # 测试QObject含有继承哪些类
    16         for mro in mros:
    17             print(mro)
    18 
    19     def QObject_dxsx(self):
    20         # *********** 测试API**************开始
    21         # obj=QObject()
    22         # obj.setObjectName('notice')
    23         # print(obj.objectName())  # notice
    24         #
    25         # obj.setProperty('notice_level','error')
    26         # obj.setProperty('notice_level2','warning')
    27         #
    28         # print(obj.property('notice_level'))  #error
    29         # print(obj.dynamicPropertyNames()) # 两个,如下
    30         # # [PyQt5.QtCore.QByteArray(b'notice_level'), PyQt5.QtCore.QByteArray(b'notice_level2')]
    31         # *********** 测试API**************结束
    32 
    33         # **************案例*****************开始
    34         with open('QObject.qss',mode='r') as f:
    35             qApp.setStyleSheet(f.read())
    36 
    37             label=QLabel(self)
    38             label.setObjectName('notice')  # 添加对象名,跟随颜色
    39             label.setProperty('notice_level','warning')
    40             label.setText('你好,明天')  # 颜色改变
    41 
    42             label2 = QLabel(self)
    43             label2.setObjectName('notice')
    44             label2.setProperty('notice_level', 'error')
    45             label2.setText('人狠话不多') # 颜色改变
    46             label2.move(100,100)
    47 
    48             btn=QPushButton(self)
    49             btn.setText('哈哈') # 颜色未改变
    50             btn.move(50,40)
    51 
    52             # 想要label3不跟随颜色,在QObject.qss做修改
    53             label3=QLabel(self)
    54             label3.setText('XXXXX')
    55             label3.move(150,150)
    56         # **************案例*****************结束
    57 
    58 if __name__ == '__main__':
    59     import sys
    60 
    61     app=QApplication(sys.argv)
    62     window=Window()
    63     window.show()
    64     sys.exit(app.exec_())
    View Code

    时间:2020-02-28   11:53:48

    作者QQ:931935931

  • 相关阅读:
    Java数据结构——栈
    Java排序算法——插入排序
    Java排序算法——选择排序
    Java排序算法——冒泡排序
    Java查找算法——二分查找
    负载 压测 概念
    在线压力测试,测试网站并发量
    Jmeter如何把响应数据的结果保存到本地的一个文件
    性能测试之压力机瓶颈分析及优化
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12374085.html
Copyright © 2011-2022 走看看