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

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

 from PyQt5.Qt import *

 class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("帅炸了")
self.resize(, )
self.setup_ui() def setup_ui(self):
label=QLabel(self)
label.setText('你好,明天') if __name__ == '__main__':
import sys app=QApplication(sys.argv) window=Window()
window.show()
sys.exit(app.exec_())

(2)别人调用时:

 import sys
from PyQt5.Qt import *
from menu import Window app=QApplication(sys.argv) window=Window() window.show()
sys.exit(app.exec_())

2、控件学习

(1)概念

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

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

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

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

  Object的总体框架学习如下:

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

(1)QObject.qss的设置

 QLabel#notice{
font-size:20px;
color:gray;
border:lpx solid gray;
border-radius:8px;
}
QLabel#notice[notice_level="normal"]{
color:green;
border-color:green
}
QLabel#notice[notice_level="warning"]{
color:yellow;
border-color:yellow
}
QLabel#notice[notice_level="error"]{
color:red;
border-color:red
}

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

 from PyQt5.Qt import *

 class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QObject的学习")
self.resize(500, 500)
self.setup_ui() def setup_ui(self):
#self.QObject_ceshi()
self.QObject_dxsx() def QObject_ceshi(self):
mros=QObject.mro() # 测试QObject含有继承哪些类
for mro in mros:
print(mro) def QObject_dxsx(self):
# *********** 测试API**************开始
# obj=QObject()
# obj.setObjectName('notice')
# print(obj.objectName()) # notice
#
# obj.setProperty('notice_level','error')
# obj.setProperty('notice_level2','warning')
#
# print(obj.property('notice_level')) #error
# print(obj.dynamicPropertyNames()) # 两个,如下
# # [PyQt5.QtCore.QByteArray(b'notice_level'), PyQt5.QtCore.QByteArray(b'notice_level2')]
# *********** 测试API**************结束 # **************案例*****************开始
with open('QObject.qss',mode='r') as f:
qApp.setStyleSheet(f.read()) label=QLabel(self)
label.setObjectName('notice') # 添加对象名,跟随颜色
label.setProperty('notice_level','warning')
label.setText('你好,明天') # 颜色改变 label2 = QLabel(self)
label2.setObjectName('notice')
label2.setProperty('notice_level', 'error')
label2.setText('人狠话不多') # 颜色改变
label2.move(100,100) btn=QPushButton(self)
btn.setText('哈哈') # 颜色未改变
btn.move(50,40) # 想要label3不跟随颜色,在QObject.qss做修改
label3=QLabel(self)
label3.setText('XXXXX')
label3.move(150,150)
# **************案例*****************结束 if __name__ == '__main__':
import sys app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())

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

作者QQ:931935931

PyQt5Day03--程序基本结构之面向对象版本+控件学习的更多相关文章

  1. C# 向程序新建的窗体中添加控件,控件需要先实例化,然后用controls.add添加到新的窗体中去

    C# 向程序新建的窗体中添加控件,控件需要先实例化,然后用controls.add添加到新的窗体中去 Form settingForm = new Form(); setForm deviceSet ...

  2. WPF 程序如何移动焦点到其他控件

    原文:WPF 程序如何移动焦点到其他控件 WPF 中可以使用 UIElement.Focus() 将焦点设置到某个特定的控件,也可以使用 TraversalRequest 仅仅移动焦点.本文介绍如何在 ...

  3. DevExpress控件学习总结(转)

    DevExpress控件学习总结   1.Navigation & Layout 1.1 Bar Manager 如果想在窗体或用户控件(user control)上添加工具条(bars)或弹 ...

  4. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  5. Android Material Design控件学习(三)——使用TextInputLayout实现酷市场登录效果

    前言 前两次,我们学习了 Android Material Design控件学习(一)--TabLayout的用法 Android Material Design控件学习(二)--Navigation ...

  6. wxPython控件学习之wx.grid.Grid 表格控件

    wxPython控件学习之wx.grid.Grid (包括对GridCellEditor和GridCelRender的扩展,以支持更多的grid cell 样式, 以GridCellColorEdit ...

  7. 转)delphi chrome cef3 控件学习笔记 (二)

    (转)delphi chrome cef3 控件学习笔记 (二) https://blog.csdn.net/risesoft2012/article/details/51260832 原创 2016 ...

  8. 如何在WPF程序中使用ArcGIS Engine的控件

    原文 http://www.gisall.com/html/47/122747-4038.html WPF(Windows Presentation Foundation)是美国微软公司推出.NET ...

  9. [UWP开发] 在低版本中使用亚克力刷以及部分高版本控件

    写于2018.10.3 仅在我的PC(17763)和WP(Limia 950 XL 15254)上测试过 微软在build 16299中引入了亚克力刷,但是Win10m并没有活那么久,lumia手机在 ...

随机推荐

  1. 018、Java中除法的是用,解决除法计算精度问题

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  2. 007、Java中定义int型变量

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  3. 011.Oracle数据库分页,取前10条数据

    SELECT ATA FROM LM_FAULT WHERE ( OCCUR_DATE BETWEEN to_date( '2017-05-01', 'yyyy-MM-DD' ) AND to_dat ...

  4. 010-PHP输出数组中第某个元素

    <?php $monthName = array(1 => "January", "February", "March",//初 ...

  5. P1047 编程团体赛

    转跳点:

  6. Kafka--生产者

    一个应用程序在很多情况下需要往Kafka写入消息:记录用户的活动(用于审计和分析),记录度量指标,保存日志消息,记录智能家电的信息,与其他应用程序进行异步通信,缓冲即将写入到数据库的数据,等等. 多样 ...

  7. Oracle 组函数count()

    1.count() 函数的参数除了可以是字段值和表达式外,还可以是“ * ”.如果是字段值或表达式,则忽略空值且考虑重复值:如果是“ * ”,则计算所有的行,也包括空值.如果要查询某字段非重复值的个数 ...

  8. springboot#interceptor

    _ 拦截器相对与过滤器Filter 而言,拦截器是spring中的概念.过滤器是servlet中的概念.在spring中肯定是优先使用拦截器Interceptor的. public class My1 ...

  9. DRF项目之实现用户密码加密保存

    在DRF项目的开发中,我们通过直接使用序列化器保存的用户信息时,用户的密码是被明文保存到数据库中. 代码实现: def create(self, validated_data): '''重写creat ...

  10. Hadoop完全高可用集群安装

    架构图(HA模型没有SNN节点) 用vm规划了8台机器,用到了7台,SNN节点没用   NN DN SN ZKFC ZK JNN RM NM node1 *     *         node2 * ...