Beispiel #1
0
class MainWindow(QtGui.QMainWindow):
	def __init__(self):
		super(MainWindow, self).__init__()

		# Abrimos una conexion a la base de datos
		co = Conexion() # instanciamos a la BD
		arr_con = co.obtenerConexion() # traemos el arreglo de las credenciales

		####### INSTANCIAMOS LAS CLASES DE LA INTERFAZ #######
		# instanciamos los botones
		self.bot = Botones(arr_con)
		self.pac = Paciente(arr_con)
		self.ort = Ortodoncista(arr_con)
		self.are = Area(arr_con)
		######################################################

		self.zoom = 0.0

		self.contenedorImagen = QtGui.QLabel()
		self.contenedorImagen.setBackgroundRole(QtGui.QPalette.Base)
		self.contenedorImagen.setSizePolicy(QtGui.QSizePolicy.Ignored,
						    QtGui.QSizePolicy.Ignored)
		self.contenedorImagen.setScaledContents(True)

		self.desplazamientoArea = QtGui.QScrollArea()
		self.desplazamientoArea.setBackgroundRole(QtGui.QPalette.Dark)
		self.desplazamientoArea.setWidget(self.contenedorImagen)

		lblSna = QtGui.QLabel('SNA:')
		self.txtSna = QtGui.QLabel('ANB:')

		lblSnb = QtGui.QLabel('SNB:')
		self.txtSnb = QtGui.QLabel('SND:')

		lblAnb = QtGui.QLabel('82')
		self.txtAnb = QtGui.QLabel('82')

		lblSnd = QtGui.QLabel('82')
		self.txtSnd = QtGui.QLabel('82')

		# CONTENEDORES ########################
		resultadosLayout = QtGui.QVBoxLayout()
		resultadosLayout.addWidget(lblSna)
		resultadosLayout.addWidget(self.txtSna)
		resultadosLayout.addWidget(lblSnb)
		resultadosLayout.addWidget(self.txtSnb)

		resultadosLayout2 = QtGui.QVBoxLayout()
		resultadosLayout2.addWidget(lblAnb)
		resultadosLayout2.addWidget(self.txtAnb)
		resultadosLayout2.addWidget(lblSnd)
		resultadosLayout2.addWidget(self.txtSnd)

		unionResultados = QtGui.QHBoxLayout()
		unionResultados.addLayout(resultadosLayout)
		unionResultados.addLayout(resultadosLayout2)

		self.resultadosGroup = QtGui.QGroupBox('Resultados')
		self.resultadosGroup.setLayout(unionResultados)
		self.__estadoAgregar = True
		self.resultadosGroup.setVisible(self.__estadoAgregar)

 		
		# self.scene = AreaDibujo()
		# self.scene.setSceneRect(QtCore.QRectF(0, 0, 300, 300))
		# # self.scene.addWidget(self.desplazamientoArea)
		# # self.scene.setBackgroundBrush(QtCore.Qt.blue)

		# self.view = QtGui.QGraphicsView(self.scene)
		# self.view.setRenderHint(QtGui.QPainter.Antialiasing)

		self.crearAtajos()
		self.crearMenus()
		self.widgetPrincipal()
		self.conexionesEventos()

		self.setCentralWidget(self.pestania)
		self.setWindowTitle('Mediciones dentales')

	def abrir(self):
		self.bot.abrir()
		self.cargar()

	def actualizarCambios(self):
		self.zoomMasAct.setEnabled(not self.tamanoVentanaAct.isChecked())
		self.zoomMenosAct.setEnabled(not self.tamanoVentanaAct.isChecked())
		self.tamanoNormalAct.setEnabled(not self.tamanoVentanaAct.isChecked())

	def ajustarDesplazamientoBarra(self, barra, valor):
		barra.setValue(int(valor * barra.value()
				       + ((valor - 1) * barra.pageStep()/2)))

	def cambioTab(self, indice):
		if indice==0: # diagnostico
			self.bot.actualizar()
		elif indice==1: # paciente
			self.pac.actualizar()
		elif indice==2: # ortodoncista
			self.ort.actualizar()
		elif indice==3: # area
			self.are.actualizar()

	def cargar(self):
		if self.bot.imagen!=None:
			print 'Ruta:', self.bot.rutaImagen
			###
			# Se comentarizaron estas lineas porque tira error
			###

 			# self.scene.addWidget(QtGui.QPixmap.fromImage(self.bot.imagen))
			self.contenedorImagen.setPixmap(QtGui.QPixmap.fromImage(self.bot.imagen))
			self.zoom = 1.0
 
			self.tamanoVentanaAct.setEnabled(True)
			self.actualizarCambios()
 
			if not self.tamanoVentanaAct.isChecked():
				self.contenedorImagen.adjustSize()
		##### clase: Botones ####
		
	def conexionesEventos(self):
		self.bot.btnCargarImagen.clicked[bool].connect(self.cargar)
		self.pestania.currentChanged.connect(self.cambioTab)

	def crearAtajos(self):
		self.abrirAct = QtGui.QAction("&Abrir...", self, 
					      shortcut="Ctrl+O", triggered=self.abrir)

		self.salirAct = QtGui.QAction("&Salir de TESIS", self, 
					      shortcut="Ctrl+Q", triggered=self.close)

		self.zoomMasAct = QtGui.QAction("&Aumentar zoom (25%)", self,
		        			shortcut="Ctrl++", enabled=False, triggered=self.zoomMas)

		self.zoomMenosAct = QtGui.QAction("&Disminuir zoom (25%)", self,
						  shortcut="Ctrl+-", enabled=False, triggered=self.zoomMenos)

		self.tamanoNormalAct = QtGui.QAction("&Tamano normal", self,
						     shortcut="Ctrl+S", enabled=False, triggered=self.tamanoNormal)

		self.tamanoVentanaAct = QtGui.QAction("&Ancho de ventana", self,
						      enabled=False, checkable=True, shortcut="Ctrl+F", triggered=self.tamanoVentana)
		
	def crearMenus(self):
		self.menuArchivo = QtGui.QMenu("&Archivo", self)
		self.menuArchivo.addAction(self.abrirAct)
		self.menuArchivo.addSeparator()
		self.menuArchivo.addAction(self.salirAct)

		self.menuVisualizacion = QtGui.QMenu("&Visualizacion", self)
		self.menuVisualizacion.addAction(self.zoomMasAct)
		self.menuVisualizacion.addAction(self.zoomMenosAct)
		self.menuVisualizacion.addAction(self.tamanoNormalAct)
		self.menuVisualizacion.addSeparator()
		self.menuVisualizacion.addAction(self.tamanoVentanaAct)

		self.menuBar().addMenu(self.menuArchivo)
		self.menuBar().addMenu(self.menuVisualizacion)

	def tamanoNormal(self):
		self.contenedorImagen.adjustSize()
		self.zoom = 1.0

	def tamanoVentana(self):
		tamanoVentana = self.tamanoVentanaAct.isChecked()
		self.desplazamientoArea.setWidgetResizable(tamanoVentana)
		if not tamanoVentana:
			self.tamanoNormal()
		self.actualizarCambios()

	def widgetPrincipal(self):
		self.pestania = QtGui.QTabWidget()

		divisor = QtGui.QSplitter(QtCore.Qt.Horizontal)
		divisor.addWidget(self.bot.wig)
		divisor.addWidget(self.desplazamientoArea)
		divisor.addWidget(self.resultadosGroup)
		# divisor.setSizes([200, 500])
		# divisor.addWidget(self.view)

		divisor2 = QtGui.QSplitter(QtCore.Qt.Horizontal)
		divisor2.addWidget(self.pac.wig)

		divisor3 = QtGui.QSplitter(QtCore.Qt.Horizontal)
		divisor3.addWidget(self.ort.wig)

		divisor4 = QtGui.QSplitter(QtCore.Qt.Horizontal)
		divisor4.addWidget(self.are.wig)

		self.pestania.addTab(divisor, 'Diagnostico')
		self.pestania.addTab(divisor2, 'Pacientes')
		self.pestania.addTab(divisor3, 'Ortodoncistas')
		self.pestania.addTab(divisor4, 'Areas')

	def zoomImagen(self, valor):
		self.zoom *= valor
		self.contenedorImagen.resize(self.zoom * self.contenedorImagen.pixmap().size())
 
		self.ajustarDesplazamientoBarra(self.desplazamientoArea.horizontalScrollBar(), valor)
		self.ajustarDesplazamientoBarra(self.desplazamientoArea.verticalScrollBar(), valor)
 
		self.zoomMasAct.setEnabled(self.zoom < 3.0)
		self.zoomMenosAct.setEnabled(self.zoom > 0.333)

	def zoomMas(self):
		self.zoomImagen(1.25)

	def zoomMenos(self):
		self.zoomImagen(0.8)