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. 在windows7 64位上安装selenium2library问题解决

    今天发现了windows7 64位上安装selenium2Libaray的问题,下载exe文件安装不行.就切换成了半自动模式.  方案如下: 1.首先下载pip安装.(因为要用pip来安装 selen ...

  2. fiddler 限速方法

    1.使用的软件下载地址: \\192.168.100.2\共享软件\开发常用\flash_team\工作软件\fiddler2setup.exe 2.注意事项 测试是,在ie浏览器环境下测试 3.软件 ...

  3. a标签的超链接提交form表单

    <form action="/home/search" method="get" id="search_form"><di ...

  4. node - TypeError: argument handler must be a function 路由报错的原因

    原因 : 路由一定要暴露给外部使用   var express = require('express') var router = express.Router()   router.get('/', ...

  5. SQL decode 函数的用法

    decode 函数基本语法: decode(字段|表达式,条件1,结果1,条件2,结果2,...,条件n,结果n,缺省值): --缺省值可以省略 表示如果 字段|表达式 等于 条件1 时,DECODE ...

  6. 十二、Sap的压缩类型p的使用方法

    一.代码如下 二.我们查看输出结果 三.如果位数超出了会怎样呢?我们试试 四.提示如下

  7. IDE一直在indexing, 造成系统卡死解决方法

    点击箭头指向,重启idea

  8. python+opencv+dlib瘦脸效果

    对实现人脸瘦脸简单功能的一个记录,大概流程如下: 1.使用dlib检测出人脸关键点 2.使用Interactive Image Warping 局部平移算法实现瘦脸 参考:https://blog.c ...

  9. js基础学习之-js包装对象

    var test = "test"; test.a = "hello"; console.log(test.a); //undifined 定义: 在JavaS ...

  10. ls 查看文件

    1.按文件大小查看文件 a.降序:ls -lsh moudaen@morton:~$ ls -lshtotal 20M 20M -rw-r--r-- 1 moudaen 65536  20M Nov ...