diff --git a/firstLabVisualProg/main.spec b/firstLabVisualProg/main.spec deleted file mode 100644 index e583453..0000000 --- a/firstLabVisualProg/main.spec +++ /dev/null @@ -1,44 +0,0 @@ -# -*- mode: python ; coding: utf-8 -*- - - -a = Analysis( - ['main.py'], - pathex=[], - binaries=[], - datas=[], - hiddenimports=[], - hookspath=[], - hooksconfig={}, - runtime_hooks=[], - excludes=[], - noarchive=False, - optimize=0, -) -pyz = PYZ(a.pure) - -exe = EXE( - pyz, - a.scripts, - a.binaries, - a.datas, - [], - name='main', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=False, - disable_windowed_traceback=False, - argv_emulation=False, - target_arch=None, - codesign_identity=None, - entitlements_file=None, -) -app = BUNDLE( - exe, - name='main.app', - icon=None, - bundle_identifier=None, -) diff --git a/controlWorkVisualProg/main.py b/visuapPart1/controlWorkVisualProg/main.py similarity index 100% rename from controlWorkVisualProg/main.py rename to visuapPart1/controlWorkVisualProg/main.py diff --git a/controlWorkVisualProg/pharmacy.db b/visuapPart1/controlWorkVisualProg/pharmacy.db similarity index 100% rename from controlWorkVisualProg/pharmacy.db rename to visuapPart1/controlWorkVisualProg/pharmacy.db diff --git a/controlWorkVisualProg/requirements.txt b/visuapPart1/controlWorkVisualProg/requirements.txt similarity index 100% rename from controlWorkVisualProg/requirements.txt rename to visuapPart1/controlWorkVisualProg/requirements.txt diff --git a/firstLabVisualProg/Untitled-1.txt b/visuapPart1/firstLabVisualProg/Untitled-1.txt similarity index 100% rename from firstLabVisualProg/Untitled-1.txt rename to visuapPart1/firstLabVisualProg/Untitled-1.txt diff --git a/firstLabVisualProg/main.py b/visuapPart1/firstLabVisualProg/main.py similarity index 100% rename from firstLabVisualProg/main.py rename to visuapPart1/firstLabVisualProg/main.py diff --git a/visuapPart1/firstLabVisualProg/razdel2.txt b/visuapPart1/firstLabVisualProg/razdel2.txt new file mode 100644 index 0000000..11cb49d --- /dev/null +++ b/visuapPart1/firstLabVisualProg/razdel2.txt @@ -0,0 +1,3 @@ +"917:1872", +"region": +Проверка \ No newline at end of file diff --git a/secondLabVisualProg/main.py b/visuapPart1/secondLabVisualProg/main.py similarity index 92% rename from secondLabVisualProg/main.py rename to visuapPart1/secondLabVisualProg/main.py index 8497e6a..b305c74 100644 --- a/secondLabVisualProg/main.py +++ b/visuapPart1/secondLabVisualProg/main.py @@ -6,7 +6,7 @@ from PyQt5.QtWidgets import ( ) from PyQt5.QtCore import Qt, QPoint from PyQt5.QtGui import ( - QImage, QPainter, QPen, QColor, QPixmap, QIcon + QImage, QPainter, QPen, QColor, QPixmap, QIcon, QPainterPath ) @@ -34,6 +34,9 @@ class Canvas(QWidget): self.redo_stack = [] self.save_state() # Сохраняем начальное состояние + # Путь для текущего штриха (для корректной работы пунктирных стилей) + self.current_path = None + def save_state(self): """Сохранить текущее состояние для undo""" self.undo_stack.append(self.image.copy()) @@ -123,28 +126,41 @@ class Canvas(QWidget): self.drawing = True self.last_point = event.pos() self.save_state() # Сохраняем состояние перед началом рисования + # Создаём новый путь для штриха + self.current_path = QPainterPath() + self.current_path.moveTo(event.pos()) def mouseMoveEvent(self, event): """Обработка движения мыши""" if self.drawing: - painter = QPainter(self.image) - if event.buttons() & Qt.RightButton: # Правая кнопка - ластик (стираем белым цветом) + # Ластик рисуем линиями напрямую + painter = QPainter(self.image) pen = QPen(Qt.white, self.eraser_width, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin) + painter.setPen(pen) + painter.drawLine(self.last_point, event.pos()) + self.last_point = event.pos() else: - # Левая кнопка - рисуем - pen = QPen(self.pen_color, self.pen_width, self.pen_style, Qt.RoundCap, Qt.RoundJoin) + # Левая кнопка - рисуем с использованием пути + self.current_path.lineTo(event.pos()) + + # Восстанавливаем сохранённое состояние и перерисовываем весь путь + if len(self.undo_stack) > 0: + self.image = self.undo_stack[-1].copy() + + painter = QPainter(self.image) + pen = QPen(self.pen_color, self.pen_width, self.pen_style, Qt.RoundCap, Qt.RoundJoin) + painter.setPen(pen) + painter.drawPath(self.current_path) - painter.setPen(pen) - painter.drawLine(self.last_point, event.pos()) - self.last_point = event.pos() self.update() def mouseReleaseEvent(self, event): """Обработка отпускания кнопки мыши""" if event.button() == Qt.LeftButton or event.button() == Qt.RightButton: self.drawing = False + self.current_path = None class MainWindow(QMainWindow): diff --git a/visuapPart1/secondLabVisualProg/test.png b/visuapPart1/secondLabVisualProg/test.png new file mode 100644 index 0000000..e400f06 Binary files /dev/null and b/visuapPart1/secondLabVisualProg/test.png differ diff --git a/thirdLabVisualProg/faculty.db b/visuapPart1/thirdLabVisualProg/faculty.db similarity index 98% rename from thirdLabVisualProg/faculty.db rename to visuapPart1/thirdLabVisualProg/faculty.db index 14d04ed..4964583 100644 Binary files a/thirdLabVisualProg/faculty.db and b/visuapPart1/thirdLabVisualProg/faculty.db differ diff --git a/thirdLabVisualProg/main.py b/visuapPart1/thirdLabVisualProg/main.py similarity index 100% rename from thirdLabVisualProg/main.py rename to visuapPart1/thirdLabVisualProg/main.py diff --git a/thirdLabVisualProg/requirements.txt b/visuapPart1/thirdLabVisualProg/requirements.txt similarity index 100% rename from thirdLabVisualProg/requirements.txt rename to visuapPart1/thirdLabVisualProg/requirements.txt