知识回顾
1.QGridLayout网格式布局
行和列的默认索引从0开始
2.QTextEdit多行文本框
开始先讲一个注意事项。
注意:网格布局是可以扩展性的。可以随着系统界面的变化而变化。这是属于相对布局。
一、案例目标
- 制作一个界面如右图。功能是描述三原色。在设计中,我们往往有三原色的概念。
- 基本上所有的颜色都可以有三种颜色调和而成,这三种颜色分别是红、绿、蓝。
- 我们使用三个按钮分表表述这三种颜色。每个按钮都可以有两种状态:即选中按钮为蓝色,未选中按钮为默认灰色。在界面中用一个区块(QFrame)来表示颜色的状态。
二、开发思路
1.制作界面采用PYqt5进行布局
2.采用盒子布局的方法进行界面布局
3.按钮的状态功能加入。
4.设置Qframe的背景颜色。
5.设置按钮的点击事件
6.设置三原色的情况,最终还是要通过改变Qframe样式来实现颜色变化
三、开发过程
1. 使用框架容器QFrame
必须使用类库QFrame
初始化:
myframe=QFrame()
注意点:
- 父容器可以采用后期添加到盒子布局的方式进行设置。
- 当然可以可以在初始化的时候设置。
- 父容器的设置会影响子容器的生命周期的。
2. 控件设置CSS风格
可以通过setStyleSheet方法来设置。
这个方法几乎在所有的Qwidget的控件上都能实现。
使用举例:
myframe.setStyleSheet("QWidget{background-color:black}")
在setStyleSheet方法中使用一个css类型的字符串。
这个css风格使用格式:
需要控制的控件标签或者行为,然后写一个大括号{},我们在大括号内写各类控制某个标签的样式。样式的书写风格就是 属性:值
3. 按钮切换
设置按钮是否可以选中与不选中的状态切换
使用setCheckable方法,默认情况下这个方法设置的值为false,我们只有设置为True才能打开这个按钮的选中切换功能
举例:
btnRed.setCheckable(True)
4. 槽函数传参
槽函数的定义需要看我们的信号源是否有参数。
信号源中有参数的部分的信号参数我们需要使用中括号。
使用举例:
btngGreen.clicked[bool].connect(self.setColor)
提问:如何传递控件对象呢?
同时sender函数来实现。
b=self.sender()
5. 三原色函数
使用Qcolor来实现。
红、绿、蓝的值的分为都在[0,255]
第一个参数表示红色
第二个参数表示绿色
第三个参数表示蓝色
四、总结强调
1.掌握三原色函数
2.掌握布局的思想
3.掌握按钮的选择状态
4.掌握槽函数的设置
5.掌握信号槽传参和控件事件的传递