コード例 #1
0
ファイル: widgets.py プロジェクト: Alwnikrotikz/lilykde
def promptText(parent, message, title = None, text="", rx=None, help=None):
    """
    Prompts for a text. Returns None on cancel, otherwise the input string.
    rx = if given, regexp string that the input must validate against
    help = if given, the docbook id in the help menu handbook.
    """
    d = KDialog(parent)
    buttons = KDialog.Ok | KDialog.Cancel
    if help:
        buttons |= KDialog.Help
        d.setHelp(help)
    d.setButtons(KDialog.ButtonCode(buttons))
    if title:
        d.setCaption(title)
    v = KVBox()
    v.setSpacing(4)
    d.setMainWidget(v)
    QLabel(message, v)
    edit = KLineEdit(v)
    if rx:
        edit.setValidator(QRegExpValidator(QRegExp(rx), edit))
    edit.setText(text)
    d.show()
    edit.setFocus()
    if d.exec_():
        return edit.text()
class function_buttons_functions(data_list_and_actor_list_functions,rendering_scene_functions):	
    data_set_list=[]
    rendered_objects_list=[]
   
    def volume(self):
        print "volume"
        self.czarna_robota(Volume)
        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget) 
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.pushButton = QtGui.QPushButton(self.frame_2)
        self.frame_2.pushButton.setGeometry(QtCore.QRect(0, 40, 121, 21))
        self.frame_2.show()

    def selectFile(self):
        bubu=QtCore.QFileDialog.getOpenFileName()
        print bubu
        
    def axes(self):
        print "axes"
        renderer=self.qvtkWidget.GetRenderWindow().GetRenderers().GetFirstRenderer()
        self.czarna_robota2(Axes,renderer)
              
    def isosurface(self):
        print "isosurface"

        #self.removeChild(self.frame_2)
        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(QtGui.QApplication.translate("frame_2", "Scalar range:", None, QtGui.QApplication.UnicodeUTF8))
        
        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(QtGui.QApplication.translate("frame_2", str(self.current_reader().get_scalar_range()), None, QtGui.QApplication.UnicodeUTF8))
        
        self.frame_2.kdoublenuminput = KDoubleNumInput(self.frame_2, decimals=5, singleStep=0.00001)
        self.frame_2.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 111, 21))
        
        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 60, 121, 21))
        pushButton.setText(QtGui.QApplication.translate("frame_2", "Single isosurface", None, QtGui.QApplication.UnicodeUTF8))
        StartLable = QtGui.QLabel(self.frame_2)
        StartLable.setGeometry(QtCore.QRect(0, 85,70, 16))
        StartLable.setText(QtGui.QApplication.translate("frame_2", "Start level", None, QtGui.QApplication.UnicodeUTF8))
        
        self.frame_2.kdoublenuminput2 = KDoubleNumInput(self.frame_2, decimals=5, singleStep=0.00001)
        self.frame_2.kdoublenuminput2.setGeometry(QtCore.QRect(60, 85, 55, 21))    
        
        EndLable = QtGui.QLabel(self.frame_2)
        EndLable.setGeometry(QtCore.QRect(0, 108,70, 16))
        EndLable.setText(QtGui.QApplication.translate("frame_2", "Final level", None, QtGui.QApplication.UnicodeUTF8))
        self.frame_2.kdoublenuminput3 = KDoubleNumInput(self.frame_2, decimals=5, singleStep=0.00001)
        self.frame_2.kdoublenuminput3.setGeometry(QtCore.QRect(60, 108, 55, 21))


        StepLable = QtGui.QLabel(self.frame_2)
        StepLable.setGeometry(QtCore.QRect(0, 132,70, 16))
        StepLable.setText(QtGui.QApplication.translate("frame_2", "Set step", None, QtGui.QApplication.UnicodeUTF8))       
        self.frame_2.kdoublenuminput4 = KDoubleNumInput(self.frame_2, decimals=5, singleStep=0.00001)
        self.frame_2.kdoublenuminput4.setGeometry(QtCore.QRect(60,132, 55, 21))
        
        IsoAnimationButton = QtGui.QPushButton(self.frame_2)
        IsoAnimationButton.setGeometry(QtCore.QRect(0, 156,121, 21)) 
        IsoAnimationButton.setText(QtGui.QApplication.translate("frame_2", "Animate ", None, QtGui.QApplication.UnicodeUTF8))
        

        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()
        
        QtCore.QObject.connect(pushButton,QtCore.SIGNAL('clicked()'),self.make_isosurface)
        QtCore.QObject.connect(IsoAnimationButton,QtCore.SIGNAL('clicked()'),self.make_iso_animation)
        #pushButton.clicked.connect(self.czarna_robota2(Isosurface,kdoublenuminput.value()))
     
    def make_isosurface(self, level = -1):
        if level==-1:
            level=self.frame_2.kdoublenuminput.value()
        self.czarna_robota2(Isosurface,level)
   # lipa, trzeba zrobic jakiegos namespaca dla isosurfacow i w ogole nie wyglada jak powinno :-( 
   #a powinno robic animacje, na slabym komputerze w ogole nie ma szans
    def make_iso_animation(self):
        self.args = [self.frame_2.kdoublenuminput2.value(),self.frame_2.kdoublenuminput3.value(),self.frame_2.kdoublenuminput4.value()]
        self.czarna_robota2(Isosurface,self.args[0])
        print "make iso animation" , self.args
       

        self.renderWindowInteractor = self.qvtkWidget.GetRenderWindowInteractor()
        self.renderWindowInteractor.AddObserver('TimerEvent', self.make_single_iso_for_animation)
        
        self.timerId = self.renderWindowInteractor.CreateRepeatingTimer(2000);
			
    def make_single_iso_for_animation(self,event,object):
		self.args[0] = self.args[0] + self.args[2]
		if self.args[0] < self.args[1]:
		    self.czarna_robota2(Isosurface, self.args[0])
		    self.qvtkWidget.GetRenderWindow().GetRenderers().GetFirstRenderer().ResetCamera()
		else:
			self.renderWindowInteractor.DestroyTimer(self.timerId)
			return 0
		    
   
    def layers_dots(self):
        print "layers_dots"
        data_reader=self.data_set_list[self.listWidget_2.currentRow()]
        
        #reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object=Layers_Dots(data_reader,QtGui.QFileDialog.getOpenFileName(directory ="..")) #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_objects_to_render_scene(rendered_object) # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(rendered_object) #dodaje do listy i listboxa rendere_objects_list  
        
        #self.czarna_robota(Layers_Dots,path)
        
    def mat_plot_3d(self):
        print "mat_plot_3d"
        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(QtGui.QApplication.translate("frame_2", "Plane property:", None, QtGui.QApplication.UnicodeUTF8))
        
        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(QtGui.QApplication.translate("frame_2", "Origin", None, QtGui.QApplication.UnicodeUTF8))


        self.kdoublenuminput = KLineEdit(self.frame_2)
        self.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 53, 21))
        self.kdoublenuminput2 = KLineEdit(self.frame_2)
        self.kdoublenuminput2.setGeometry(QtCore.QRect(42, 37, 53, 21))
        self.kdoublenuminput3 = KLineEdit(self.frame_2)
        self.kdoublenuminput3.setGeometry(QtCore.QRect(84, 37, 50, 21))
        
        label_3 = QtGui.QLabel(self.frame_2)
        label_3.setGeometry(QtCore.QRect(0, 60, 121, 16))
        label_3.setText(QtGui.QApplication.translate("frame_2", "Normal", None, QtGui.QApplication.UnicodeUTF8))
        
        self.kdoublenuminput01 = KLineEdit(self.frame_2)
        self.kdoublenuminput01.setGeometry(QtCore.QRect(0, 80, 53, 21))
        self.kdoublenuminput02 = KLineEdit(self.frame_2)
        self.kdoublenuminput02.setGeometry(QtCore.QRect(42, 80, 53, 21))
        self.kdoublenuminput03 = KLineEdit(self.frame_2)
        self.kdoublenuminput03.setGeometry(QtCore.QRect(84,80, 50, 21))
        
        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 103, 121, 21))
        pushButton.setText(QtGui.QApplication.translate("frame_2", "Single XYZplot", None, QtGui.QApplication.UnicodeUTF8))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()
        
        QtCore.QObject.connect(pushButton,QtCore.SIGNAL('clicked()'),self.make_mat_plot3d)
        
    def make_mat_plot3d(self):
        print("make_mat_plot3d")
        origin=[self.kdoublenuminput.text(),self.kdoublenuminput2.text(),self.kdoublenuminput3.text()]
        normal = [self.kdoublenuminput01.text(),self.kdoublenuminput02.text(),self.kdoublenuminput03.text()]
        reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        camera_normal = [0,1,0]
        a=MatPlot3d(reader,origin,normal,camera_normal)
        
    def outline(self):
        print "outline"
        self.czarna_robota(Outline)
        #Outline(selected_Data_Reader)
        
    def vector_field(self):
        print "vector_field"
        self.czarna_robota(Vector_Field)
        
    def xy_plot(self):
        print "xy_plot"
        self.frame_2.hide()
        self.frame_2.destroy()
        
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(QtGui.QApplication.translate("frame_2", "Line property:", None, QtGui.QApplication.UnicodeUTF8))
        
        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(QtGui.QApplication.translate("frame_2", "First point", None, QtGui.QApplication.UnicodeUTF8))


        self.kdoublenuminput = KLineEdit(self.frame_2)
        self.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 53, 21))
        self.kdoublenuminput2 = KLineEdit(self.frame_2)
        self.kdoublenuminput2.setGeometry(QtCore.QRect(42, 37, 53, 21))
        self.kdoublenuminput3 = KLineEdit(self.frame_2)
        self.kdoublenuminput3.setGeometry(QtCore.QRect(84, 37, 50, 21))
        
        label_3 = QtGui.QLabel(self.frame_2)
        label_3.setGeometry(QtCore.QRect(0, 60, 121, 16))
        label_3.setText(QtGui.QApplication.translate("frame_2", "Second point", None, QtGui.QApplication.UnicodeUTF8))
        
        self.kdoublenuminput01 = KLineEdit(self.frame_2)
        self.kdoublenuminput01.setGeometry(QtCore.QRect(0, 80, 53, 21))
        self.kdoublenuminput02 = KLineEdit(self.frame_2)
        self.kdoublenuminput02.setGeometry(QtCore.QRect(42, 80, 53, 21))
        self.kdoublenuminput03 = KLineEdit(self.frame_2)
        self.kdoublenuminput03.setGeometry(QtCore.QRect(84,80, 50, 21))
        
        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 103, 121, 21))
        pushButton.setText(QtGui.QApplication.translate("frame_2", "Single XYplot", None, QtGui.QApplication.UnicodeUTF8))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()
        
        QtCore.QObject.connect(pushButton,QtCore.SIGNAL('clicked()'),self.make_xy_plot)
        
    def make_xy_plot(self):
        points=[self.kdoublenuminput.text(),self.kdoublenuminput2.text(),self.kdoublenuminput3.text(),self.kdoublenuminput01.text(),self.kdoublenuminput02.text(),self.kdoublenuminput03.text()]
        points=[float(points[0]),float(points[1]),float(points[2]),float(points[3]),float(points[4]),float(points[5])]
        main_renderer=self.qvtkWidget.GetRenderWindow().GetRenderers().GetFirstRenderer()
        main_interactor=self.qvtkWidget.GetRenderWindowInteractor()
        self.czarna_robota5(XY_Plot,main_renderer,main_interactor,points)     
        
    def xyz_plot(self):
        print "xyz_plot"
        #origin=[10,10,15]
        #normal=[0.5,0.5,0.5]

        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(QtGui.QApplication.translate("frame_2", "Plane property:", None, QtGui.QApplication.UnicodeUTF8))
        
        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(QtGui.QApplication.translate("frame_2", "Origin", None, QtGui.QApplication.UnicodeUTF8))


        self.kdoublenuminput = KLineEdit(self.frame_2)
        self.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 53, 21))
        self.kdoublenuminput2 = KLineEdit(self.frame_2)
        self.kdoublenuminput2.setGeometry(QtCore.QRect(42, 37, 53, 21))
        self.kdoublenuminput3 = KLineEdit(self.frame_2)
        self.kdoublenuminput3.setGeometry(QtCore.QRect(84, 37, 50, 21))
        
        label_3 = QtGui.QLabel(self.frame_2)
        label_3.setGeometry(QtCore.QRect(0, 60, 121, 16))
        label_3.setText(QtGui.QApplication.translate("frame_2", "Normal", None, QtGui.QApplication.UnicodeUTF8))
        
        self.kdoublenuminput01 = KLineEdit(self.frame_2)
        self.kdoublenuminput01.setGeometry(QtCore.QRect(0, 80, 53, 21))
        self.kdoublenuminput02 = KLineEdit(self.frame_2)
        self.kdoublenuminput02.setGeometry(QtCore.QRect(42, 80, 53, 21))
        self.kdoublenuminput03 = KLineEdit(self.frame_2)
        self.kdoublenuminput03.setGeometry(QtCore.QRect(84,80, 50, 21))
        
        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 103, 121, 21))
        pushButton.setText(QtGui.QApplication.translate("frame_2", "Single XYZplot", None, QtGui.QApplication.UnicodeUTF8))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()
        
        QtCore.QObject.connect(pushButton,QtCore.SIGNAL('clicked()'),self.make_xyz_plot)
        
    def get_camera_aligment(self):
        renderer=self.qvtkWidget.GetRenderWindow().GetRenderers().GetFirstRenderer()
        camera_aligment= renderer.GetActiveCamera().GetViewUp()
        return camera_aligment
        
    def make_xyz_plot(self):
        camera_aligment=self.get_camera_aligment()
        origin=[self.kdoublenuminput.text(),self.kdoublenuminput2.text(),self.kdoublenuminput3.text()]
        normal = [self.kdoublenuminput01.text(),self.kdoublenuminput02.text(),self.kdoublenuminput03.text()]
        self.czarna_robota4(Color_Map,origin,normal,camera_aligment)
        self.czarna_robota4(Contour,origin,normal,camera_aligment)
        
    def sphere_volume(self):
        print "sphere_volume"
        self.czarna_robota(Sphere_Volume_Actor)
        
    def scalar_bar(self):
        print "scalar_bar"
        self.czarna_robota2(Scalar_Bar,self.scalar_bar_number)
        self.scalar_bar_number+=1
        
    def hello_world(self):
		print "hello_world"
        
    def open_file(self):
        print "open_file"
        self.kurlrequester.setStartDir("../input")
        url=str(self.kurlrequester.text())  #zamienia Qstring na string
        reader=Data_Reader(url)
        self.add_to_data_list(reader)
			
    def czarna_robota(self,class_to_be_rendered):
        reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object=class_to_be_rendered(reader) #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(rendered_object) # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(rendered_object) #dodaje do listy i listboxa rendere_objects_list
		
    def czarna_robota2(self,class_to_be_rendered,argument):
        reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object=class_to_be_rendered(reader,argument) #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(rendered_object) # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(rendered_object) #dodaje do listy i listboxa rendere_objects_list
        
    def czarna_robota3(self,class_to_be_rendered,argument,argument2):
        reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object=class_to_be_rendered(reader,argument,argument2) #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(rendered_object) # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(rendered_object) #dodaje do listy i listboxa rendere_objects_list
        
    def czarna_robota4(self,class_to_be_rendered,argument,argument2,argument3):
        reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object=class_to_be_rendered(reader,argument,argument2,argument3) #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(rendered_object) # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(rendered_object) #dodaje do listy i listboxa rendere_objects_list
        
    def czarna_robota5(self,class_to_be_rendered,argument,argument2,argument3):
        reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object=class_to_be_rendered(reader,argument,argument2,argument3) #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(rendered_object) # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(rendered_object) #dodaje do listy i listboxa rendere_objects_list
		
        
    def current_reader(self):
		return self.data_set_list[self.listWidget_2.currentRow()]
class function_buttons_functions(data_list_and_actor_list_functions,
                                 rendering_scene_functions):
    data_set_list = []
    rendered_objects_list = []

    def volume(self):
        print "volume"
        self.czarna_robota(Volume)
        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.pushButton = QtGui.QPushButton(self.frame_2)
        self.frame_2.pushButton.setGeometry(QtCore.QRect(0, 40, 121, 21))
        self.frame_2.show()

    def selectFile(self):
        bubu = QtCore.QFileDialog.getOpenFileName()
        print bubu

    def axes(self):
        print "axes"
        renderer = self.qvtkWidget.GetRenderWindow().GetRenderers(
        ).GetFirstRenderer()
        self.czarna_robota2(Axes, renderer)

    def isosurface(self):
        print "isosurface"

        #self.removeChild(self.frame_2)
        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(
            QtGui.QApplication.translate("frame_2", "Scalar range:", None,
                                         QtGui.QApplication.UnicodeUTF8))

        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(
            QtGui.QApplication.translate(
                "frame_2", str(self.current_reader().get_scalar_range()), None,
                QtGui.QApplication.UnicodeUTF8))

        self.frame_2.kdoublenuminput = KDoubleNumInput(self.frame_2,
                                                       decimals=5,
                                                       singleStep=0.00001)
        self.frame_2.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 111, 21))

        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 60, 121, 21))
        pushButton.setText(
            QtGui.QApplication.translate("frame_2", "Single isosurface", None,
                                         QtGui.QApplication.UnicodeUTF8))
        StartLable = QtGui.QLabel(self.frame_2)
        StartLable.setGeometry(QtCore.QRect(0, 85, 70, 16))
        StartLable.setText(
            QtGui.QApplication.translate("frame_2", "Start level", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.frame_2.kdoublenuminput2 = KDoubleNumInput(self.frame_2,
                                                        decimals=5,
                                                        singleStep=0.00001)
        self.frame_2.kdoublenuminput2.setGeometry(QtCore.QRect(60, 85, 55, 21))

        EndLable = QtGui.QLabel(self.frame_2)
        EndLable.setGeometry(QtCore.QRect(0, 108, 70, 16))
        EndLable.setText(
            QtGui.QApplication.translate("frame_2", "Final level", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.frame_2.kdoublenuminput3 = KDoubleNumInput(self.frame_2,
                                                        decimals=5,
                                                        singleStep=0.00001)
        self.frame_2.kdoublenuminput3.setGeometry(QtCore.QRect(
            60, 108, 55, 21))

        StepLable = QtGui.QLabel(self.frame_2)
        StepLable.setGeometry(QtCore.QRect(0, 132, 70, 16))
        StepLable.setText(
            QtGui.QApplication.translate("frame_2", "Set step", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.frame_2.kdoublenuminput4 = KDoubleNumInput(self.frame_2,
                                                        decimals=5,
                                                        singleStep=0.00001)
        self.frame_2.kdoublenuminput4.setGeometry(QtCore.QRect(
            60, 132, 55, 21))

        IsoAnimationButton = QtGui.QPushButton(self.frame_2)
        IsoAnimationButton.setGeometry(QtCore.QRect(0, 156, 121, 21))
        IsoAnimationButton.setText(
            QtGui.QApplication.translate("frame_2", "Animate ", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()

        QtCore.QObject.connect(pushButton, QtCore.SIGNAL('clicked()'),
                               self.make_isosurface)
        QtCore.QObject.connect(IsoAnimationButton, QtCore.SIGNAL('clicked()'),
                               self.make_iso_animation)
        #pushButton.clicked.connect(self.czarna_robota2(Isosurface,kdoublenuminput.value()))

    def make_isosurface(self, level=-1):
        if level == -1:
            level = self.frame_2.kdoublenuminput.value()
        self.czarna_robota2(Isosurface, level)
# lipa, trzeba zrobic jakiegos namespaca dla isosurfacow i w ogole nie wyglada jak powinno :-(
#a powinno robic animacje, na slabym komputerze w ogole nie ma szans

    def make_iso_animation(self):
        self.args = [
            self.frame_2.kdoublenuminput2.value(),
            self.frame_2.kdoublenuminput3.value(),
            self.frame_2.kdoublenuminput4.value()
        ]
        self.czarna_robota2(Isosurface, self.args[0])
        print "make iso animation", self.args

        self.renderWindowInteractor = self.qvtkWidget.GetRenderWindowInteractor(
        )
        self.renderWindowInteractor.AddObserver(
            'TimerEvent', self.make_single_iso_for_animation)

        self.timerId = self.renderWindowInteractor.CreateRepeatingTimer(2000)

    def make_single_iso_for_animation(self, event, object):
        self.args[0] = self.args[0] + self.args[2]
        if self.args[0] < self.args[1]:
            self.czarna_robota2(Isosurface, self.args[0])
            self.qvtkWidget.GetRenderWindow().GetRenderers().GetFirstRenderer(
            ).ResetCamera()
        else:
            self.renderWindowInteractor.DestroyTimer(self.timerId)
            return 0

    def layers_dots(self):
        print "layers_dots"
        data_reader = self.data_set_list[self.listWidget_2.currentRow()]

        #reader=self.data_set_list[self.listWidget_2.currentRow()] #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object = Layers_Dots(
            data_reader, QtGui.QFileDialog.getOpenFileName(directory="..")
        )  #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_objects_to_render_scene(
            rendered_object)  # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(
            rendered_object)  #dodaje do listy i listboxa rendere_objects_list

        #self.czarna_robota(Layers_Dots,path)

    def mat_plot_3d(self):
        print "mat_plot_3d"
        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(
            QtGui.QApplication.translate("frame_2", "Plane property:", None,
                                         QtGui.QApplication.UnicodeUTF8))

        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(
            QtGui.QApplication.translate("frame_2", "Origin", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.kdoublenuminput = KLineEdit(self.frame_2)
        self.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 53, 21))
        self.kdoublenuminput2 = KLineEdit(self.frame_2)
        self.kdoublenuminput2.setGeometry(QtCore.QRect(42, 37, 53, 21))
        self.kdoublenuminput3 = KLineEdit(self.frame_2)
        self.kdoublenuminput3.setGeometry(QtCore.QRect(84, 37, 50, 21))

        label_3 = QtGui.QLabel(self.frame_2)
        label_3.setGeometry(QtCore.QRect(0, 60, 121, 16))
        label_3.setText(
            QtGui.QApplication.translate("frame_2", "Normal", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.kdoublenuminput01 = KLineEdit(self.frame_2)
        self.kdoublenuminput01.setGeometry(QtCore.QRect(0, 80, 53, 21))
        self.kdoublenuminput02 = KLineEdit(self.frame_2)
        self.kdoublenuminput02.setGeometry(QtCore.QRect(42, 80, 53, 21))
        self.kdoublenuminput03 = KLineEdit(self.frame_2)
        self.kdoublenuminput03.setGeometry(QtCore.QRect(84, 80, 50, 21))

        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 103, 121, 21))
        pushButton.setText(
            QtGui.QApplication.translate("frame_2", "Single XYZplot", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()

        QtCore.QObject.connect(pushButton, QtCore.SIGNAL('clicked()'),
                               self.make_mat_plot3d)

    def make_mat_plot3d(self):
        print("make_mat_plot3d")
        origin = [
            self.kdoublenuminput.text(),
            self.kdoublenuminput2.text(),
            self.kdoublenuminput3.text()
        ]
        normal = [
            self.kdoublenuminput01.text(),
            self.kdoublenuminput02.text(),
            self.kdoublenuminput03.text()
        ]
        reader = self.data_set_list[self.listWidget_2.currentRow(
        )]  #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        camera_normal = [0, 1, 0]
        a = MatPlot3d(reader, origin, normal, camera_normal)

    def outline(self):
        print "outline"
        self.czarna_robota(Outline)
        #Outline(selected_Data_Reader)

    def vector_field(self):
        print "vector_field"
        self.czarna_robota(Vector_Field)

    def xy_plot(self):
        print "xy_plot"
        self.frame_2.hide()
        self.frame_2.destroy()

        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(
            QtGui.QApplication.translate("frame_2", "Line property:", None,
                                         QtGui.QApplication.UnicodeUTF8))

        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(
            QtGui.QApplication.translate("frame_2", "First point", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.kdoublenuminput = KLineEdit(self.frame_2)
        self.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 53, 21))
        self.kdoublenuminput2 = KLineEdit(self.frame_2)
        self.kdoublenuminput2.setGeometry(QtCore.QRect(42, 37, 53, 21))
        self.kdoublenuminput3 = KLineEdit(self.frame_2)
        self.kdoublenuminput3.setGeometry(QtCore.QRect(84, 37, 50, 21))

        label_3 = QtGui.QLabel(self.frame_2)
        label_3.setGeometry(QtCore.QRect(0, 60, 121, 16))
        label_3.setText(
            QtGui.QApplication.translate("frame_2", "Second point", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.kdoublenuminput01 = KLineEdit(self.frame_2)
        self.kdoublenuminput01.setGeometry(QtCore.QRect(0, 80, 53, 21))
        self.kdoublenuminput02 = KLineEdit(self.frame_2)
        self.kdoublenuminput02.setGeometry(QtCore.QRect(42, 80, 53, 21))
        self.kdoublenuminput03 = KLineEdit(self.frame_2)
        self.kdoublenuminput03.setGeometry(QtCore.QRect(84, 80, 50, 21))

        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 103, 121, 21))
        pushButton.setText(
            QtGui.QApplication.translate("frame_2", "Single XYplot", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()

        QtCore.QObject.connect(pushButton, QtCore.SIGNAL('clicked()'),
                               self.make_xy_plot)

    def make_xy_plot(self):
        points = [
            self.kdoublenuminput.text(),
            self.kdoublenuminput2.text(),
            self.kdoublenuminput3.text(),
            self.kdoublenuminput01.text(),
            self.kdoublenuminput02.text(),
            self.kdoublenuminput03.text()
        ]
        points = [
            float(points[0]),
            float(points[1]),
            float(points[2]),
            float(points[3]),
            float(points[4]),
            float(points[5])
        ]
        main_renderer = self.qvtkWidget.GetRenderWindow().GetRenderers(
        ).GetFirstRenderer()
        main_interactor = self.qvtkWidget.GetRenderWindowInteractor()
        self.czarna_robota5(XY_Plot, main_renderer, main_interactor, points)

    def xyz_plot(self):
        print "xyz_plot"
        #origin=[10,10,15]
        #normal=[0.5,0.5,0.5]

        self.frame_2.hide()
        self.frame_2.destroy()
        self.frame_2 = QtGui.QFrame(self.centralwidget)
        self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331))
        label = QtGui.QLabel(self.frame_2)
        label.setGeometry(QtCore.QRect(0, 0, 121, 16))
        label.setText(
            QtGui.QApplication.translate("frame_2", "Plane property:", None,
                                         QtGui.QApplication.UnicodeUTF8))

        label_2 = QtGui.QLabel(self.frame_2)
        label_2.setGeometry(QtCore.QRect(0, 18, 121, 16))
        label_2.setText(
            QtGui.QApplication.translate("frame_2", "Origin", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.kdoublenuminput = KLineEdit(self.frame_2)
        self.kdoublenuminput.setGeometry(QtCore.QRect(0, 37, 53, 21))
        self.kdoublenuminput2 = KLineEdit(self.frame_2)
        self.kdoublenuminput2.setGeometry(QtCore.QRect(42, 37, 53, 21))
        self.kdoublenuminput3 = KLineEdit(self.frame_2)
        self.kdoublenuminput3.setGeometry(QtCore.QRect(84, 37, 50, 21))

        label_3 = QtGui.QLabel(self.frame_2)
        label_3.setGeometry(QtCore.QRect(0, 60, 121, 16))
        label_3.setText(
            QtGui.QApplication.translate("frame_2", "Normal", None,
                                         QtGui.QApplication.UnicodeUTF8))

        self.kdoublenuminput01 = KLineEdit(self.frame_2)
        self.kdoublenuminput01.setGeometry(QtCore.QRect(0, 80, 53, 21))
        self.kdoublenuminput02 = KLineEdit(self.frame_2)
        self.kdoublenuminput02.setGeometry(QtCore.QRect(42, 80, 53, 21))
        self.kdoublenuminput03 = KLineEdit(self.frame_2)
        self.kdoublenuminput03.setGeometry(QtCore.QRect(84, 80, 50, 21))

        pushButton = QtGui.QPushButton(self.frame_2)
        pushButton.setGeometry(QtCore.QRect(0, 103, 121, 21))
        pushButton.setText(
            QtGui.QApplication.translate("frame_2", "Single XYZplot", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.show()

        QtCore.QObject.connect(pushButton, QtCore.SIGNAL('clicked()'),
                               self.make_xyz_plot)

    def get_camera_aligment(self):
        renderer = self.qvtkWidget.GetRenderWindow().GetRenderers(
        ).GetFirstRenderer()
        camera_aligment = renderer.GetActiveCamera().GetViewUp()
        return camera_aligment

    def make_xyz_plot(self):
        camera_aligment = self.get_camera_aligment()
        origin = [
            self.kdoublenuminput.text(),
            self.kdoublenuminput2.text(),
            self.kdoublenuminput3.text()
        ]
        normal = [
            self.kdoublenuminput01.text(),
            self.kdoublenuminput02.text(),
            self.kdoublenuminput03.text()
        ]
        self.czarna_robota4(Color_Map, origin, normal, camera_aligment)
        self.czarna_robota4(Contour, origin, normal, camera_aligment)

    def sphere_volume(self):
        print "sphere_volume"
        self.czarna_robota(Sphere_Volume_Actor)

    def scalar_bar(self):
        print "scalar_bar"
        self.czarna_robota2(Scalar_Bar, self.scalar_bar_number)
        self.scalar_bar_number += 1

    def hello_world(self):
        print "hello_world"

    def open_file(self):
        print "open_file"
        self.kurlrequester.setStartDir("../input")
        url = str(self.kurlrequester.text())  #zamienia Qstring na string
        reader = Data_Reader(url)
        self.add_to_data_list(reader)

    def czarna_robota(self, class_to_be_rendered):
        reader = self.data_set_list[self.listWidget_2.currentRow(
        )]  #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object = class_to_be_rendered(
            reader
        )  #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(
            rendered_object)  # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(
            rendered_object)  #dodaje do listy i listboxa rendere_objects_list

    def czarna_robota2(self, class_to_be_rendered, argument):
        reader = self.data_set_list[self.listWidget_2.currentRow(
        )]  #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object = class_to_be_rendered(
            reader, argument
        )  #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(
            rendered_object)  # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(
            rendered_object)  #dodaje do listy i listboxa rendere_objects_list

    def czarna_robota3(self, class_to_be_rendered, argument, argument2):
        reader = self.data_set_list[self.listWidget_2.currentRow(
        )]  #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object = class_to_be_rendered(
            reader, argument, argument2
        )  #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(
            rendered_object)  # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(
            rendered_object)  #dodaje do listy i listboxa rendere_objects_list

    def czarna_robota4(self, class_to_be_rendered, argument, argument2,
                       argument3):
        reader = self.data_set_list[self.listWidget_2.currentRow(
        )]  #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object = class_to_be_rendered(
            reader, argument, argument2, argument3
        )  #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(
            rendered_object)  # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(
            rendered_object)  #dodaje do listy i listboxa rendere_objects_list

    def czarna_robota5(self, class_to_be_rendered, argument, argument2,
                       argument3):
        reader = self.data_set_list[self.listWidget_2.currentRow(
        )]  #do zmiennej reader przypisuje readera z data_set_list o indeksie rownym currentRow
        rendered_object = class_to_be_rendered(
            reader, argument, argument2, argument3
        )  #wywoluje konstruktor reprezentacji danych przy pomocy class_to_be_rendered
        self.add_object_to_render_scene(
            rendered_object)  # dodaje do sceny renderowana
        self.add_to_rendered_objects_list(
            rendered_object)  #dodaje do listy i listboxa rendere_objects_list

    def current_reader(self):
        return self.data_set_list[self.listWidget_2.currentRow()]
コード例 #4
0
ファイル: main.py プロジェクト: marcusfollrud/KSpot
class MainWindow (KMainWindow):

	
	
	def __init__ (self):
		KMainWindow.__init__ (self)
		self.result = ""
		self.resize (640, 480)
		
		label = QLabel ("Search", self)
		label.setGeometry (10,10,200,20)
		
		self.searchBox = KLineEdit(self)
		self.searchBox.setGeometry(50,8,520,25)
		self.connect(self.searchBox, SIGNAL("returnPressed()"),self.search)
		
		searchButton = KPushButton(self)
		searchButton.setGeometry(570,6,70,25)
		searchButton.setText("Search")
		self.connect (searchButton, SIGNAL("clicked()"), self.search)
		
		self.resultList = KListWidget(self)
		self.resultList.setGeometry(10,50,620,400)
		self.connect(self.resultList, SIGNAL("itemDoubleClicked(QListWidgetItem*)"), self.playSelected)
	
		
	
	def formatResult(self,track):
		has_metadata = "un"
		if track.has_meta_data():
			has_metadata = ""

		return " %s - %s (%s), length: %d [%splayable]" % (", ".join((a.name for a in track.artists)),
                                                         track.title, track.album,
                                                         track.length, has_metadata)
	def playSelected(self):
		global s
		global result
		self.proc = SpotPlayFile(self,s,result,self.resultList.currentRow())
		self.proc.start()
		
		
	def doSomething(self):
		print("Doing something")
	
	def search(self):
		global result
		global s
		if self.searchBox.text() == "":
			KMessageBox.error(None,"Search for something...")
			return
		else:
			self.resultList.clear()
			result = s.search(str(self.searchBox.text()))
			if not result:
				self.resultList.addItem("Nothing found :(")
			else:
				for i in range(0,len(result.playlist.tracks)):
					tracktext = self.formatResult(result.playlist.tracks[i])
				#	tracktext = str(track)
					self.resultList.addItem(tracktext)
					
				#s.play(result.playlist.tracks.)
		return