как открыть новый виджет с помощью mousepressEvent - PullRequest
0 голосов
/ 05 октября 2018

здесь я фиксирую положение x, y, используя событие нажатия мыши, когда я щелкаю любую позицию, в которой я хочу открыть новый виджет? В этом виджете я хочу создать трехмерный график, можете ли вы помочь мне решить эту проблему?ниже приведен мой код:

 def mousePressEvent(self, evnt):
            print evnt
            print dir(evnt)
            print evnt.screenPos().x()
            print evnt.screenPos().y()


            self.ix = int(evnt.screenPos().x()/Setting.WIDTH)
            self.iy = int(evnt.screenPos().y()/Setting.HEIGHT)
            print self.ix , self.iy
            #self.widget = QtGui.QWidget()
            #self.widget.show()


import scipy as np
from mayavi import mlab


x,y = np.mgrid[-3:3:100j, -3:3:100j]

a = 0.3

a0 = 0.2

r1=np.sqrt((x-a)**2 + y**2)

values = np.sinc(-r1/a0)



mlab.surf(values, warp_scale='auto')

mlab.outline()

mlab.axes()
# mlab.test_contour3d()
mlab.show()

1 Ответ

0 голосов
/ 05 октября 2018
import sys

from PyQt4.QtGui import QWidget, QApplication

class MyWidget(QWidget):
    def mousePressEvent(self, evnt):
        print evnt
        print dir(evnt)
        print evnt.screenPos().x()
        print evnt.screenPos().y()


        self.ix = int(evnt.screenPos().x()/Setting.WIDTH)
        self.iy = int(evnt.screenPos().y()/Setting.HEIGHT)
        print self.ix , self.iy
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
app.exec_()
...