主要内容 #
1. 画图的应用介绍 #
该应用的主要功能是实现简易的画图功能。
程序主要包括画布显示,画笔设置,橡皮擦,清空图像以及保存图像的功能。
2. 画图功能的解构 #
根据应用的功能说明,以下对画图应用程序的功能进行解构:
- 1,界面:需要一个主界面,用于展示画图程序中的各个控件。
- 2,界面:需要一个用于显示和绘制图像的窗口(QLabel)。
- 3,界面:需要两个按钮(QPushButton),一个用于清空图像,另一个用于保存图像。
- 4,界面:一个勾选框(QCheckBox),用于判断是否使用橡皮擦。
- 5,界面:一个计数控件器(QSpinBox),用于设置画笔粗细。
- 6,界面:一个下拉列表框(QComboBox),用于选择画笔颜色
- 7,功能:在绘图窗口中单击鼠标并拖拽实现线条绘制功能。
- 8,功能:根据选择的笔画粗细以及颜色设置可绘制相应的线条。
- 9,功能:擦除已经绘制的线条、清空图像、保存绘制的图像。
3. 画图的界面设计 #
以下程序对画图程序界面的画布,按钮,勾选框,以及下拉框列表进行设计。
import sys from PyQt5 import QtCore, QtGui from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt from PyQt5.Qt import QWidget, QColor, QPixmap, QIcon, QSize, QCheckBox, QPainter, QPoint, QPen from PyQt5.QtWidgets import QApplication, QPushButton, QComboBox, QLabel, QSpinBox, QFileDialog class PaintImage(QWidget): """ 画图程序demo,仅供学习交流 """ def __init__(self): super().__init__() #调用父类 QWidget 的构造函数 self.__initUI() # 初始化面板图像 def __initUI(self): self.setGeometry(100, 100, 1000, 800) self.setWindowTitle('绘图') # 设置窗口的标题 # 显示图像的窗口 self.ImageView = QLabel(self) self.ImageView.setGeometry(0, 0, 800, 800) #设置位置 self.ImageView.setStyleSheet("border: 2px solid blue") #设置边框风格 self.ImageView.setAlignment(Qt.AlignCenter) #设置窗口的显示为居中对齐模式 # 保存图像按钮 self.ImageSaveButton = QPushButton('保存图像', self) self.ImageSaveButton.setGeometry(QtCore.QRect(820, 100, 160, 50)) #设置位置 # 清空图像按钮 self.ImageClearButton = QPushButton('清空图像', self) self.ImageClearButton.setGeometry(QtCore.QRect(820, 200, 160, 50)) #设置位置 # 使用橡皮擦 self.EraserButton = QCheckBox(" 使用橡皮擦") #勾选框 self.EraserButton.setParent(self) #设置父类为当前窗口,不设置则无法添加该控件 self.EraserButton.setChecked(False) #默认选择为非勾选 self.EraserButton.setGeometry(QtCore.QRect(820, 300, 160, 50)) #设置位置 # 笔画粗细标题 self.PenThickLabel = QLabel(self) #用Label显示标题 self.PenThickLabel.setText("笔画粗细") self.PenThickLabel.setGeometry(820, 400, 100, 30) self.PenThickLabel.setFont(QFont("微软雅黑", 15, QFont.Bold)) # 设置笔画粗细的控件 self.SpinBoxPenThick = QSpinBox(self) #计数控件器 self.SpinBoxPenThick.setMaximum(60) #可设置的最大值 self.SpinBoxPenThick.setMinimum(2) #可设置的最小值 self.SpinBoxPenThick.setValue(3) #设置默认值 self.SpinBoxPenThick.setSingleStep(1) #最小步长 self.SpinBoxPenThick.setGeometry(820, 430, 100, 30) # 笔画颜色标题 self.PenColorLabel = QLabel(self) #用Label显示标题 self.PenColorLabel.setText("笔画颜色") self.PenColorLabel.setGeometry(820, 500, 100, 30) self.PenColorLabel.setFont(QFont("微软雅黑", 15, QFont.Bold)) # 设置笔画颜色的控件 self.ComboBoxPenColor = QComboBox(self) #下拉列表框 self.ComboBoxPenColor.setGeometry(820, 530, 100, 30) self.show() # 显示窗口 app = QApplication(sys.argv) ex = PaintImage() app.exec_()
运行以上程序,观察画图程序的基本结构界面,后续课程将完善各个模块按钮的功能。
4. 小结 #
- 画图程序的功能。
- 画图程序功能的解构。
- 画图程序界面的设计。
习题 #
- 无