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. 001.CI4框架CodeIgniter的默认访问路径url

    1. 我们解压缩CI4的压缩包,找到app目录,点开Controllers目录,在Home.php文件中,写入我们的如下代码: 002.我们来访问我们的网站 http://127.0.0.1/CI4/ ...

  2. asp.net+sql数据库学生信息管理系统

    一款学生信息管理系统送给大家. 功能部分: 1.教师管理(添加,修改,删除,查看) 2.学生管理(添加,修改,删除,查看) 3.班级管理(添加,修改,删除,查看) 4.学生成绩管理(添加,修改,删除, ...

  3. DevOps - 与传统方式区别

    章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...

  4. Java If ... Else

    章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...

  5. word中替换内容

    参考了一篇文章 然后做了如下修改  用python的win32com模块替换word中的文字搞定批量打印奖状 python 操作 office python操作word # -*- coding: u ...

  6. Python基础笔记:函数:调用函数、定义函数、函数的参数、递归函数

    一.定义一个求二元一次方程的根的函数 #Sublime Text import math def ee(a,b,c): delta=b*b-4*a*c if delta<0: return 'n ...

  7. linux解决端口冲突问题

    # 查看9000这个端口是否被使用 netstat -lnt | grep 9000 -l       显示正在被监听(listen)的端口 -n     表示直接显示端口数字 -t      表示的 ...

  8. Vulkan SDK 之Render Pass

    Create a Render Pass A render pass describes the scope of a rendering operation by specifying the co ...

  9. reduce()、filter()、map()、some()、every()、...展开属性

    reduce().filter().map().some().every()....展开属性   这些概念属于es5.es6中的语法,跟react+redux并没有什么联系,我们直接在https:// ...

  10. 16.swoole学习笔记--异步事件

    <?php //异步事件 $fp=stream_socket_client(); fwrite($fp,"GET / HTTP/1.1\r\nHost:www.qq.com\r\n\r ...