def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.load_movies() self.set_signals() self.show()
def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.load_movies() self.show() self.ui.btn_up.clicked.connect(self.action_up) self.ui.btn_down.clicked.connect(self.action_down)
class Movies(QtGui.QMainWindow): table_columns = ( (u"Título", 200), (u"Año", 100), (u"Director", 200), (u"País", 100), (u"Ranking", 75)) def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.load_movies() self.set_signals() self.show() def set_signals(self): #en esta funcion se definen todos los tratamientos de señales. self.ui.btn_up.clicked.connect(self.up) self.ui.btn_down.clicked.connect(self.down) self.ui.table_movies.clicked.connect(self.select) def load_movies(self): # Método que carga la tabla movies en la Ventana, y las ordena por # ranking movies = controller.get_movies() rows = len(movies) model = QtGui.QStandardItemModel( rows, len(self.table_columns)) self.ui.table_movies.setModel(model) self.ui.table_movies.horizontalHeader().setResizeMode( 0, self.ui.table_movies.horizontalHeader().Stretch) for col, h in enumerate(self.table_columns): model.setHeaderData(col, QtCore.Qt.Horizontal, h[0]) self.ui.table_movies.setColumnWidth(col, h[1]) for i, data in enumerate(movies): row = [data[1], data[3], data[4], data[5], data[8]] for j, field in enumerate(row): index = model.index(i, j, QtCore.QModelIndex()) model.setData(index, field) #Parametros ocultos model.item(i).mov = data model.item(i).pk = data[0] def up(self): #Método que sube en el ranking la pelicula seleccionada. model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() if index.row() == -1: # No se ha seleccionado una fila self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("Debe seleccionar una fila") return False else: id_movie = model.item(index.row()).pk if (controller.up(id_movie)): self.load_movies() msgBox = QtGui.QMessageBox() msgBox.setText("La pelicula ha subido en Ranking.") msgBox.exec_() return True else: self.ui.errorMessageDialog = QtGui.QErrorMessage(self) self.ui.errorMessageDialog.showMessage( "Error al intentar subir Ranking") return False def down(self): #Metodo que baja en el ranking la pelicula seleccionada. model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() if index.row() == -1: # No se ha seleccionado una fila self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("Debe seleccionar una fila") return False else: id_movie = model.item(index.row()).pk if (controller.down(id_movie)): self.load_movies() msgBox = QtGui.QMessageBox() msgBox.setText("La pelicula ha bajado en Ranking.") msgBox.exec_() return True else: self.ui.errorMessageDialog = QtGui.QErrorMessage(self) self.ui.errorMessageDialog.showMessage( "Error al intentar bajar Ranking") return False def select(self): # Método que carga en la ventana principal la informacion extra model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() id_movie = model.item(index.row()).pk rep = controller.get_reparto(id_movie) rep = str(rep[0][0]) self.ui.lbl_stars.setText(rep) des = controller.get_descripcion(id_movie) des = str(des[0][0]) self.ui.lbl_description.setText(des) im = controller.get_imagen(id_movie) im = str(im[0][0]) self.ui.lbl_imagen.setPixmap(im)
class Movies(QtGui.QMainWindow): table_columns = ((u"Título", 200), (u"Año", 100), (u"Director", 200), (u"País", 100), (u"Ranking", 75)) def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.load_movies() self.set_signals() self.show() def set_signals(self): #en esta funcion se definen todos los tratamientos de señales. self.ui.btn_up.clicked.connect(self.up) self.ui.btn_down.clicked.connect(self.down) self.ui.table_movies.clicked.connect(self.select) def load_movies(self): # Método que carga la tabla movies en la Ventana, y las ordena por # ranking movies = controller.get_movies() rows = len(movies) model = QtGui.QStandardItemModel(rows, len(self.table_columns)) self.ui.table_movies.setModel(model) self.ui.table_movies.horizontalHeader().setResizeMode( 0, self.ui.table_movies.horizontalHeader().Stretch) for col, h in enumerate(self.table_columns): model.setHeaderData(col, QtCore.Qt.Horizontal, h[0]) self.ui.table_movies.setColumnWidth(col, h[1]) for i, data in enumerate(movies): row = [data[1], data[3], data[4], data[5], data[8]] for j, field in enumerate(row): index = model.index(i, j, QtCore.QModelIndex()) model.setData(index, field) #Parametros ocultos model.item(i).mov = data model.item(i).pk = data[0] def up(self): #Método que sube en el ranking la pelicula seleccionada. model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() if index.row() == -1: # No se ha seleccionado una fila self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("Debe seleccionar una fila") return False else: id_movie = model.item(index.row()).pk if (controller.up(id_movie)): self.load_movies() msgBox = QtGui.QMessageBox() msgBox.setText("La pelicula ha subido en Ranking.") msgBox.exec_() return True else: self.ui.errorMessageDialog = QtGui.QErrorMessage(self) self.ui.errorMessageDialog.showMessage( "Error al intentar subir Ranking") return False def down(self): #Metodo que baja en el ranking la pelicula seleccionada. model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() if index.row() == -1: # No se ha seleccionado una fila self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("Debe seleccionar una fila") return False else: id_movie = model.item(index.row()).pk if (controller.down(id_movie)): self.load_movies() msgBox = QtGui.QMessageBox() msgBox.setText("La pelicula ha bajado en Ranking.") msgBox.exec_() return True else: self.ui.errorMessageDialog = QtGui.QErrorMessage(self) self.ui.errorMessageDialog.showMessage( "Error al intentar bajar Ranking") return False def select(self): # Método que carga en la ventana principal la informacion extra model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() id_movie = model.item(index.row()).pk rep = controller.get_reparto(id_movie) rep = str(rep[0][0]) self.ui.lbl_stars.setText(rep) des = controller.get_descripcion(id_movie) des = str(des[0][0]) self.ui.lbl_description.setText(des) im = controller.get_imagen(id_movie) im = str(im[0][0]) self.ui.lbl_imagen.setPixmap(im)
class Movies(QtGui. QMainWindow): table_columns = ( (u"Título", 200), (u"Año", 100), (u"Director", 150), (u"País", 100), (u"Ranking", 75)) def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.load_movies() self.show() self.ui.btn_up.clicked.connect(self.action_up) self.ui.btn_down.clicked.connect(self.action_down) def load_movies(self): movies = controlador.get_movies() rows = len(movies) model = QtGui.QStandardItemModel( rows, len(self.table_columns)) self.ui.table_movies.setModel(model) self.ui.table_movies.horizontalHeader().setResizeMode( 0, self.ui.table_movies.horizontalHeader().Stretch) for col, h in enumerate(self.table_columns): model.setHeaderData(col, QtCore. Qt.Horizontal, h[0]) self.ui.table_movies.setColumnWidth(col, h[1]) for i, data in enumerate(movies): row = [data[1], data[3], data[4], data[5], data[8]] for j, field in enumerate(row): index = model.index(i, j, QtCore. QModelIndex()) model.setData(index, field) #parametro oculto model.item(i).mov = data def action_up(self): self.update_rank("Up") def action_down(self): self.update_rank("Down") def update_rank(self, action): model = self.ui.table_movies.model() index = self.ui.table_movies.currentIndex() if index.row() == -1: self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("Debe seleccionar una Pelicula") else: rank = model.index(index.row(), 4, QtCore.QModelIndex()).data() movie = controlador.get_rank(rank) old_rank = int(movie[0]['ranking']) if(action == "Up"): new_rank = old_rank - 1 elif(action == "Down"): new_rank = old_rank + 1 if(new_rank == 0): self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("No se puede subir el ranking a esta película") elif(new_rank > 7): self.errorMessageDialog = QtGui.QErrorMessage(self) self.errorMessageDialog.showMessage("No se puede bajar más el ranking a esta película") else: movie1 = controlador.get_rank(new_rank) controlador.update(movie[0]['title'], new_rank) if(movie1): controlador.update(movie1[0]['title'], old_rank) self.load_movies()