на пиши программу на python используя библиотеку pyside6:
По клику мыши на точке в верхней половине окна создайте любой
виджет. Сделайте его перетаскиваемым на второй виджет, который
находится в нижней половине окна.
bash
pip install PySide6
Теперь приступим к написанию кода:
python
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout
class DraggableWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setFixedSize(100, 100) # Устанавливаем размер виджета
self.setStyleSheet("background-color: red") # Устанавливаем цвет фона виджета
class MainWindow(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.setLayout(layout)
top_widget = QWidget() # Виджет для верхней части окна
top_widget.setFixedSize(400, 200) # Устанавливаем размер верхнего виджета
top_layout = QVBoxLayout()
top_widget.setLayout(top_layout)
bottom_widget = QWidget() # Виджет для нижней части окна
bottom_widget.setFixedSize(400, 200) # Устанавливаем размер нижнего виджета
bottom_layout = QVBoxLayout()
bottom_widget.setLayout(bottom_layout)
layout.addWidget(top_widget)
layout.addWidget(bottom_widget)
top_widget.mousePressEvent = self.create_draggable_widget
def create_draggable_widget(self, event):
draggable_widget = DraggableWidget(self) # Создаем подвижный виджет
draggable_widget.move(event.pos()) # Помещаем виджет в позицию клика
draggable_widget.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
Давайте разберем этот код по шагам:
1. Мы создаем класс `DraggableWidget`, который наследуется от `QWidget`. Этот класс представляет подвижный виджет, который мы будем создавать при клике.
2. В конструкторе `DraggableWidget` устанавливаются размер виджета и цвет фона.
3. Затем мы создаем класс `MainWindow`, который также наследуется от `QWidget`. В этом классе создается интерфейс с двумя вертикальными виджетами: верхним и нижним.
4. Мы назначаем событие `mousePressEvent` на верхний виджет, чтобы по клику мыши на нем создавать подвижные виджеты.
5. В методе `create_draggable_widget` создается новый подвижный виджет `DraggableWidget` и помещается в позицию клика на верхнем виджете.
6. Наконец, мы создаем экземпляр приложения `QApplication`, окно главного виджета `MainWindow`, отображаем его на экране и запускаем цикл обработки событий.
После запуска кода вы увидите окно с двумя частями: верхней и нижней. При клике мыши на верхней части окна будет создаваться подвижный красный виджет, который можно перетаскивать на нижнюю часть окна.
Надеюсь, это объяснение поможет вам понять код. Если у вас есть дополнительные вопросы или нужна дополнительная помощь, пожалуйста, дайте знать!Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет