Уведомления

Группа в Telegram: @pythonsu

#1 Май 7, 2017 13:31:27

kermet0000
Зарегистрирован: 2017-05-07
Сообщения: 3
Репутация: +  -1  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

import sys

Отредактировано kermet0000 (Май 18, 2017 23:29:36)

Прикреплённый файлы:
attachment pyramid.ui (34,5 KБ)

Офлайн

#2 Май 10, 2017 10:11:21

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

вы бы хоть комментариев каких в код добавили чтобы было понятнее что у вас за что отвечает, да какихнить текстовых меток к катрам добавили потому как без картинок они все пустые…
А вообще драг-анд-дроп реализуеться довольно просто. например реализовать вот так(пример с стековерфлов):

 # -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Button(QtGui.QPushButton):
    def mouseMoveEvent(self, e):
        # write the relative cursor position to mime data
        mimeData = QtCore.QMimeData()
        mimeData.setText('%d,%d' % (e.x(), e.y()))
        # let's make it fancy. we'll show a "ghost" of the button as we drag
        # grab the button to a pixmap
        pixmap = QtGui.QPixmap.grabWidget(self)
        # below makes the pixmap half transparent
        painter = QtGui.QPainter(pixmap)
        painter.setCompositionMode(painter.CompositionMode_DestinationIn)
        painter.fillRect(pixmap.rect(), QtGui.QColor(0, 0, 0, 127))
        painter.end()
        # make a QDrag
        drag = QtGui.QDrag(self)
        # put our MimeData
        drag.setMimeData(mimeData)
        # set its Pixmap
        drag.setPixmap(pixmap)
        # shift the Pixmap so that it coincides with the cursor position
        drag.setHotSpot(e.pos())
        # start the drag operation
        # exec_ will return the accepted action from dropEvent
        if drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction:
            print ('moved')
        else:
            print ('copied')
    def mousePressEvent(self, e):
        QtGui.QPushButton.mousePressEvent(self, e)
        if e.button() == QtCore.Qt.LeftButton:
            print ('press')
class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        self.setAcceptDrops(True)
        button = Button('Button', self)
        button.move(100, 65)
        self.buttons = [button]
        self.setWindowTitle('Copy or Move')
        self.setGeometry(300, 300, 280, 150)
    def dragEnterEvent(self, e):
        e.accept()
    def dropEvent(self, e):
        # get the relative position from the mime data
        mime = e.mimeData().text()
        x, y = map(int, mime.split(','))
        if e.keyboardModifiers() & QtCore.Qt.ShiftModifier:
            # copy
            # so create a new button
            button = Button('Button', self)
            # move it to the position adjusted with the cursor position at drag
            button.move(e.pos()-QtCore.QPoint(x, y))
            # show it
            button.show()
            # store it
            self.buttons.append(button)
            # set the drop action as Copy
            e.setDropAction(QtCore.Qt.CopyAction)
        else:
            # move
            # so move the dragged button (i.e. event.source())
            e.source().move(e.pos()-QtCore.QPoint(x, y))
            # set the drop action as Move
            e.setDropAction(QtCore.Qt.MoveAction)
        # tell the QDrag we accepted it
        e.accept()
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    app.exec_()



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Май 10, 2017 10:12:44)

Офлайн

#3 Май 11, 2017 17:52:17

DangerWolf
Зарегистрирован: 2017-05-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

kermet0000
Нужно чтобы при нажатии на карту левой кнопкой мышки ее можно было перемещать на другую, у меня нужно нажать на одну карту потом на другую.Помогите
употребление мата непозволительно код, плагиатор, могу доказать

Отредактировано JOHN_16 (Май 14, 2017 15:54:38)

Офлайн

#4 Май 14, 2017 15:49:13

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

DangerWolf
а давайте



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Май 15, 2017 13:39:47

DangerWolf
Зарегистрирован: 2017-05-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

JOHN_16
DangerWolfа давайте
я написал сообщение выше для того что бы все кто будет брать код. из моей группы в универе знали что он палевный, и этот код уже не принимается так как он мой.. вот и всё..

Офлайн

#6 Май 15, 2017 14:35:06

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2683
Репутация: +  182  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

> все кто будет брать код. из моей группы в универе знали что он палевный, и этот код уже не принимается так как он мой.. вот и всё..

Не берите этот код. Он не только “палевный”, но ещё и кривой. Я бы за такое пятёрку бы не поставил.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Май 15, 2017 20:08:59

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Эффект перемещения солитер

DangerWolf
не засчитывается. Никаких доказательств не было предоставлено.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Май 15, 2017 20:09:27)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version