Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import urllib.request
- from PyQt6.QtCore import Qt
- from PyQt6.QtGui import QPixmap
- from PyQt6.QtWidgets import QDialog, QApplication, QStackedWidget, QMessageBox, QLabel, QGridLayout
- from PyQt6.uic import loadUi
- from Imdb import Imdb
- # # lineEdit progress bar
- # from colour import Color
- # import pyqtlineeditprogressbar as lepbar
- # from pyqtlineeditprogressbar import PyQtLineEditProgressBar
- class MainWindow(QDialog):
- def __init__(self):
- super().__init__()
- loadUi("gui/maintabwindow.ui", self)
- # scrollArea settings
- self.scrollAreaTab3.setWidget(self.tab3widget)
- self.scrollAreaTab3.setStyleSheet("QScrollBar {height:50px;}")
- self.scrollAreaTab2.setWidget(self.tab2widget)
- # create tab2 layout
- grid = QGridLayout()
- for i in range(1, 15):
- for j in range(1, 4):
- grid.addWidget(QLabel(str(i) + str(j)), i, j)
- self.tab2widget.setLayout(grid)
- """"
- # stretch columns to 30% of layout width
- # grid.setColumnStretch(1, 4)
- # grid.setColumnStretch(2, 4)
- # grid.setColumnStretch(3, 4)
- # resize and realign tab2 layout
- # for widget in grid.children(): # doesn't work because for some reason grid is sibling not father of QLabel
- # if isinstance(widget, QLabel):
- # widget.setAlignment(Qt.AlignmentFlag.AlignCenter)
- """
- # resize and realign tab2 layout
- for label in self.tab2widget.children():
- if isinstance(label, QLabel):
- label.setAlignment(Qt.AlignmentFlag.AlignCenter)
- # apply something to all items in grid
- self.index = 0
- while self.index < 42:
- grid.itemAt(self.index).widget().setStyleSheet("QLabel {background-color: yellow;}")
- self.index = self.index + 1
- # layout positioning by setFixedSize of 1st widget in each row
- self.grid_index = 0
- while self.grid_index < 42:
- grid.itemAt(self.grid_index).widget().setFixedSize(229, 13)
- grid.itemAt(self.grid_index+3).widget().setFixedSize(229, 227)
- self.grid_index = self.grid_index + 6
- # progress bar initialization; first tab focus
- self.tabWidget.currentChanged.connect(self.tab_changed)
- self.tabWidget.setCurrentIndex(0) # sets tab Index(0) to focused
- self.progressBar.hide()
- # naming tabs
- self.tabWidget.setTabText(0, "Search")
- self.tabWidget.setTabText(1, "Movies")
- self.tabWidget.setTabText(2, "Shows")
- # top layout settings
- self.line_search.setPlaceholderText("Search for: movie, show, director, actor")
- # self.line_search.setText("Search for: movie, show, director, actor")
- # QTimer.singleShot(5000, self.clear_line_search)
- # events for top layout
- self.btn_search.clicked.connect(self.search_movies)
- self.line_search.returnPressed.connect(self.search_movies)
- self.btn_select.clicked.connect(self.clear_tab3)
- # keyboard's events
- def keyPressEvent(self, e):
- if e.key() == Qt.Key.Key_Escape.value:
- choice = QMessageBox.question(self, 'Exit', "Close UwUatch?", # make Esc work as Discard in this popup
- QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Discard)
- if choice == QMessageBox.StandardButton.Ok:
- sys.exit()
- def clear_line_search(self):
- self.line_search.setText("")
- def tab_changed(self):
- print("Initiated tab ", self.tabWidget.currentIndex())
- def search_for_movie(self):
- movie = self.line_search.text()
- results = imdb.search_for_movie(movie)
- title = str(results[0]['title'])
- year = str(results[0]['year'])
- self.tab1_text_browser.setText(title
- + " "
- + year)
- def search_for_movies(self):
- self.tab1_text_browser.clear()
- movies = self.line_search.text()
- result = imdb.search_for_movies(movies)
- self.tab1_text_browser.setText(result)
- def clear_tab3(self):
- self.title_1.clear()
- self.img_1.clear()
- # some dead method
- def search_movies(self):
- self.search_for_movies()
- # for widget in self.tab3widget.children(): # fix this
- # if isinstance(widget, PyQt6.QtWidgets.QLabel):
- # widget.clear()
- self.tab3widget.hide()
- self.progressBar.setValue(0)
- self.progressBar.show()
- try:
- movies = self.line_search.text()
- imdb.search_movies(movies)
- tyd = imdb.title_year_dict
- ud = imdb.url_dict
- print(tyd)
- print(ud)
- # assigning title from title_year_dict
- self.title_1.setText(tyd[1])
- self.title_2.setText(tyd[2])
- self.title_3.setText(tyd[3])
- self.title_4.setText(tyd[4])
- self.title_5.setText(tyd[5])
- self.title_6.setText(tyd[6])
- self.title_7.setText(tyd[7])
- self.title_8.setText(tyd[8])
- self.title_9.setText(tyd[9])
- self.title_10.setText(tyd[10])
- self.title_11.setText(tyd[11])
- self.title_12.setText(tyd[12])
- self.title_13.setText(tyd[13])
- self.title_14.setText(tyd[14])
- self.title_15.setText(tyd[15])
- self.title_16.setText(tyd[16])
- self.title_17.setText(tyd[17])
- self.title_18.setText(tyd[18])
- self.title_19.setText(tyd[19])
- self.title_20.setText(tyd[20])
- # assigning img from url_dict
- pixmap = QPixmap() # create Pixmap instance
- data1 = urllib.request.urlopen(ud[1]).read() # read URL
- pixmap.loadFromData(data1) # load data to pixmap
- pixmap = pixmap.scaledToHeight(227) # scale pixmap to Width
- self.img_1.setPixmap(pixmap) # assign pixmap to QLabel
- self.progressBar.setValue(5)
- go_url = urllib.request.urlopen
- pixmap.loadFromData(go_url(ud[2]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_2.setPixmap(pixmap)
- self.progressBar.setValue(10)
- pixmap.loadFromData(go_url(ud[3]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_3.setPixmap(pixmap)
- self.progressBar.setValue(15)
- pixmap.loadFromData(go_url(ud[4]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_4.setPixmap(pixmap)
- self.progressBar.setValue(20)
- pixmap.loadFromData(go_url(ud[5]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_5.setPixmap(pixmap)
- self.progressBar.setValue(25)
- pixmap.loadFromData(go_url(ud[6]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_6.setPixmap(pixmap)
- self.progressBar.setValue(30)
- pixmap.loadFromData(go_url(ud[7]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_7.setPixmap(pixmap)
- self.progressBar.setValue(35)
- pixmap.loadFromData(go_url(ud[8]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_8.setPixmap(pixmap)
- self.progressBar.setValue(40)
- pixmap.loadFromData(go_url(ud[9]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_9.setPixmap(pixmap)
- self.progressBar.setValue(45)
- pixmap.loadFromData(go_url(ud[10]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_10.setPixmap(pixmap)
- self.progressBar.setValue(50)
- pixmap.loadFromData(go_url(ud[11]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_11.setPixmap(pixmap)
- self.progressBar.setValue(55)
- pixmap.loadFromData(go_url(ud[12]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_12.setPixmap(pixmap)
- self.progressBar.setValue(60)
- pixmap.loadFromData(go_url(ud[13]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_13.setPixmap(pixmap)
- self.progressBar.setValue(65)
- pixmap.loadFromData(go_url(ud[14]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_14.setPixmap(pixmap)
- self.progressBar.setValue(70)
- pixmap.loadFromData(go_url(ud[15]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_15.setPixmap(pixmap)
- self.progressBar.setValue(75)
- pixmap.loadFromData(go_url(ud[16]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_16.setPixmap(pixmap)
- self.progressBar.setValue(80)
- pixmap.loadFromData(go_url(ud[17]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_17.setPixmap(pixmap)
- self.progressBar.setValue(85)
- pixmap.loadFromData(go_url(ud[18]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_18.setPixmap(pixmap)
- self.progressBar.setValue(90)
- pixmap.loadFromData(go_url(ud[19]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_19.setPixmap(pixmap)
- self.progressBar.setValue(95)
- pixmap.loadFromData(go_url(ud[20]).read())
- pixmap = pixmap.scaledToHeight(227)
- self.img_20.setPixmap(pixmap)
- self.progressBar.setValue(0)
- self.progressBar.hide()
- self.tab3widget.show()
- except Exception as error:
- print(f"Error: {error}")
- self.progressBar.setValue(0)
- self.progressBar.hide()
- self.tab3widget.show()
- return
- def assign_title_and_img(self):
- pass
- imdb = Imdb()
- app = QApplication(sys.argv)
- window = MainWindow()
- widget = QStackedWidget()
- widget.addWidget(window)
- widget.setFixedSize(738, 609)
- widget.show()
- # window.show() # don't know why this was here, maybe will
- sys.exit(app.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement