0 / 0 / 0
Регистрация: 15.07.2021
Сообщений: 2

Создание многоугольников и отдельное их передвижение мышкой

15.07.2021, 16:55. Показов 2559. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите, как можно нарисовать правой кнопкой мыши многоугольник, а левой кнопкой мыши этот многоугольник двигать. Допустим этих многоугольников будет много. Ну и допустим при закрытии окна (или по кнопке) сохранять конфигурацию многоугольника в файл. Возможно ли такое? Просто уже много всего перерыл и так и не смог ничего подобного найти. Буду весьма благодарен за пример кода.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2021, 16:55
Ответы с готовыми решениями:

Окружности - создание и передвижение их мышкой
Вообщем у меня задаются параметры r1 r2 и r3 - это так называемые три различных радиуса, мне необходимо создать в scrollbox - 3 круга...

Перемещение многоугольников мышкой
Написать программу, в которой многоугольники(правильные) рисуются из массива, фигура выделяется мышкой и перемещается удержанием. Можно...

Передвижение блока мышкой
Хочу сделать перемещение блока мышью. Узнавать координаты мыши научился, но в JS коде выскакивает ошибочка. function MoveWindow(id) ...

4
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 939
15.07.2021, 17:06
Цитата Сообщение от Eversory Посмотреть сообщение
Возможно ли такое?
Да. Посмотрите листинги к книге Н. Прохоренок, В. Дронов
"Python 3 и PyQt 5. Разработка приложений". Там есть готовые примеры из которых это можно собрать.
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
15.07.2021, 18:01
Рисоваание
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from tkinter import*
 
root = Tk()
 
class GUI(Canvas):
    '''inherits Canvas class (all Canvas methodes, attributes will be accessible)
       You can add your customized methods here.
    '''
    def __init__(self,master,*args,**kwargs):
        Canvas.__init__(self, master=master, *args, **kwargs)
    
 
polygon = GUI(root)
polygon.create_polygon([150,75,225,0,300,75,225,150],     outline='gray', 
            fill='gray', width=2)
 
polygon.pack()
root.mainloop()
Добавлено через 7 минут
Движение
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import tkinter as tk
 
root = tk.Tk()
 
canvas = tk.Canvas(root)
canvas.pack()
 
shape_id = canvas.create_oval(0, 0, 100, 100)
 
 
def move_oval(event):
    canvas.coords(shape_id, event.x - 50, event.y -
                  50, event.x + 50, event.y + 50)
 
 
canvas.bind('<1>', move_oval)
 
root.mainloop()
1
0 / 0 / 0
Регистрация: 15.07.2021
Сообщений: 2
16.07.2021, 08:22  [ТС]
А на tkinter это никак не реализовать? Просто на нем уже больше половины программы написано. А вот реализовать редактирование уже существующих объектов я не могу сделать. Если это все проще на Pyqt5 сделать, то наверное придется переходить на него. Подскажите пожалуйста....
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 939
16.07.2021, 14:25
Цитата Сообщение от Eversory Посмотреть сообщение
А на tkinter это никак не реализовать?
не знаю) вот под то вы описываете, я не встречал. только как показал Dax. А в pyqt хотите рисуйте, группируйте, таскайте)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtWidgets, QtGui
import sys
 
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("Класс QGraphicsItemGroup")
window.resize(600, 400)
 
scene = QtWidgets.QGraphicsScene(0.0, 0.0, 500.0, 335.0)
scene.setBackgroundBrush(QtCore.Qt.white)
 
line1 = scene.addLine(50.0, 50.0, 450.0, 50.0, 
                     pen=QtGui.QPen(QtCore.Qt.red, 3))
line1.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
line1.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable)
line1.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable)
 
line2 = scene.addLine(QtCore.QLineF(50.0, 100.0, 450.0, 100.0), 
                      pen=QtGui.QPen(QtCore.Qt.blue, 3))
line2.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
line2.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable)
line2.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable)
 
group = QtWidgets.QGraphicsItemGroup()
group.addToGroup(line1)
group.addToGroup(line2)
group.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
group.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable)
scene.addItem(group)
 
rect = scene.addRect(QtCore.QRectF(0.0, 0.0, 400.0, 100.0), 
                     pen=QtGui.QPen(QtCore.Qt.blue, 3),
                     brush=QtGui.QBrush(QtCore.Qt.green))
rect.setPos(QtCore.QPointF(50.0, 150.0))
rect.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
rect.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable)
rect.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable)
 
view = QtWidgets.QGraphicsView(scene)
 
box = QtWidgets.QVBoxLayout()
box.addWidget(view)
window.setLayout(box)
 
window.show()
sys.exit(app.exec_())
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2021, 14:25
Помогаю со студенческими работами здесь

Передвижение объекта за мышкой
Короче дамы и господа помогите пожалуйста.Как сделать чтобы рисунок передвигался за мышью.Видел похожую тему,но особо не понял.Объясните...

Передвижение объекта мышкой
Всем привет! Возникла некая необходимость таскать некий объект по форме. Как это сделать? Пытался через mouseMoveEvent. Перемещение...

Передвижение мышкой обьектов
Графика GDI+ Передвижение мышкой обьектов Например есть графический обьект слова, нужна мышкой перемещать этот обьект?

Передвижение мышкой фигуры
Господа, здравствуйте. Есть форма и класс, в классе описана фигура, как сделать так, чтобы можно было передвигать фигуру в PictureBox с...

Передвижение объектов по форме мышкой
Хочу написать в Windows Forms игру Unblock King. На данном этапе реализовал реализовал перемещение PictureBox по форме, и их столкновение....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru