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. 014-查看PHP的环境变量

    <?php print("你正在用文件的名字为: "); print(__FILE__); print(" <BR>\n"); print(& ...

  2. 吴裕雄--天生自然java开发常用类库学习笔记:多对多关系范例

    import java.util.List ; import java.util.ArrayList ; public class Course{ private String name ; priv ...

  3. jdbc oracle 连接串

    jdbc.url配置为: jdbc:oracle:thin:@xxx.xx.xx.xx:1521:orclpdb 报错: java.sql.SQLException: Listenerrefused ...

  4. 虚拟机安装centos6.5出现Error processing drive:pci-0000:00:10-scsi-0:0:0:0问题

    vmware安装linux系统出现Error processing drive:pci-0000:00:10-scsi-0:0:0:0问题 问题出现原因:我给虚拟机的内存太小了,只给了512M 解决办 ...

  5. (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法

    http://blog.csdn.net/henuhaigang/article/details/13678023 转自CSDN博客,因为一个jar包没引入困扰我好长时间 ,当时正在做spring A ...

  6. 打开文件管理器Device File Explorer

    版本Android Studio3.2

  7. 实验吧-密码学-这里没有key(VBScript脚本加密)

    打开网页,查看源代码,发现一段乱码,这就是加密后的密文. #@~^TgAAAA=='[6*liLa6++p'aXvfiLaa6i[[avWi[[a*p[[6*!I'[6cp'aXvXILa6fp[:6 ...

  8. kafka的编程模型

    1.kafka消费者编程模型 分区消费模型 组(group)消费模型 1.1.1.分区消费架构图,每个分区对应一个消费者. 1.1.2.分区消费模型伪代码描述 指定偏移量,用于从上次消费的地方开始消费 ...

  9. hdu 2583 How far away ? 离线算法 带权求最近距离

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  10. Marvolo Gaunt's Ring(巧妙利用前后缀进行模拟)

    Description Professor Dumbledore is helping Harry destroy the Horcruxes. He went to Gaunt Shack as h ...