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. Jackson学习笔记

    老版本的Jackson使用的包名为org.codehaus.jackson,而新版本使用的是com.fasterxml.jackson. Jackson主要包含了3个模块: jackson-core ...

  2. Java 将数据写入磁盘并读取磁盘上的文件

    package test; import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;impo ...

  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-eject

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  4. HTML文本域(文本框)禁止修改写入数据方法

    html文本域有时需要禁止修改内容,方法如下: 加入readonly=""或readonly="readonly" 如下:<input name=&quo ...

  5. HDU - 1864 最大报销额 (01背包)

    题意:现有一笔经费可以报销一定额度的发票.允许报销的发票类型包括买图书(A类).文具(B类).差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元.现请你编写 ...

  6. Linux 安装gcc g++

    Linux版本: cat /proc/version Linux version 3.10.0-693.11.6.el7.x86_64 (mockbuild@x86-041.build.eng.bos ...

  7. node.js - 定义全局变量

    1,定义全局变量 app.set('name','八戒') 2,获取全局变量 app.get('name')

  8. Typecho博客添加版权说明

    版权声明是指作品权利人对自己创作作品的权利的一种口头或书面声明,一般版权声明应该包括权利归属.作品使用准许方式.责任追究等方面的内容.诸如平时看文章时最后会有一个严禁转载的说明,其实这就是版权声明. ...

  9. 蓝桥杯-机器繁殖 第6届C语言C组决赛第4题

    题目叙述: 标题:机器人繁殖 X星系的机器人可以自动复制自己.它们用1年的时间可以复制出2个自己,然后就失去复制能力.每年X星系都会选出1个新出生的机器人发往太空.也就是说,如果X星系原有机器人5个, ...

  10. 133-PHP子类无法重写父类private同名函数

    <?php class father{ //定义father类 //定义protected成员方法 protected function cook(){ return 'protected co ...