def paint_all(self, painter, year_flag, month_flag, day_flag, hour_flag): wind_data = self.process_data(self.data, self.city, year_flag, month_flag, day_flag, hour_flag) figure = px.bar_polar(wind_data, r="frequency", theta="direction",\ color="wind_speed", template="plotly_dark",\ ) figure.update_layout({ 'plot_bgcolor': 'rgba(0, 0, 0, 0)', 'paper_bgcolor': 'rgba(0, 0, 0, 0)', }) figure.update_layout(legend=dict(font=dict(size=50))) img_bytes = figure.to_image(format="png") img = QImage() img.loadFromData(img_bytes) pixmap = QPixmap(img) pixmap = pixmap.scaled(self.width(), 1.2 * self.height(), Qt.KeepAspectRatio) painter.drawPixmap(0, 0, pixmap)
def __init__(self, owner): super(self.__class__, self).__init__(owner) Ui_Loading.__init__(self) self.setupUi(self) self.owner = weakref.ref(owner) self.setWindowFlag(QtCore.Qt.FramelessWindowHint) self.setWindowFlag(QtCore.Qt.Dialog) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setWindowModality(QtCore.Qt.ApplicationModal) # frmX = self.width() # frmY = self.height() # w = QDesktopWidget() # w.width() # movePoint = QPoint(int(w.width()/2-frmX/2), int(w.height()/2 - frmY/2)) # self.move(movePoint) self.index = 1 self.qMapList = [] for i in range(1, 11): data = resources.DataMgr.GetData("loading_{}".format(str(i))) img = QImage() img.loadFromData(data) self.qMapList.append(img) self.label.setFixedSize(QPixmap.fromImage(self.qMapList[0]).size()) self.label.setPixmap(QPixmap.fromImage(self.qMapList[0])) self.label.setScaledContents(True) self.timer = QTimer(self.label) self.timer.setInterval(100) self.cnt = 0 self.closeCnt = 50 self.timer.timeout.connect(self.UpdatePic)
def setup_category_view(self): self.current_view = StepViews.CATEGORY_VIEW i, j = 0, 0 for category in self.categories: data = urllib.request.urlopen(category["icons"][0]["url"]).read() label = ClickableLabel(self) label.setScaledContents(True) label.setFixedSize(190, 190) label.dataId = category["id"] label.clicked.connect(self.category_click) image = QImage(32, 32, QImage.Format_RGB32) image.loadFromData(data) painter = QPainter(image) painter.setPen(QPen(QColor("white"))) painter.setFont(QFont("Roboto", 22, QFont.Bold)) painter.drawText(QRect(0, 0, image.width(), image.height() - 25), Qt.AlignCenter | Qt.AlignBottom, category["name"]) painter.end() pixmap = QPixmap(image) label.setPixmap(pixmap) self.layout.addWidget(label, i, j) j += 1 if j % 4 == 0: i += 1 j = 0
def send_question(self, title, text, btn_yes=None, btn_no=None, btn_cancel=None): """ returns 0 when the user pressed the button on the left. returns 4 when the user pressed the button in the middle. returns 8 when the user pressed the button on the right. """ self.yes = buttons.DarkerButton( parent=self.parent(), text='Yes') if btn_yes is None else btn_yes self.no = buttons.DarkerButton(parent=self.parent(), text='No') if btn_no is None else btn_no self.cancel = buttons.DarkerButton( parent=self.parent(), text='Cancel') if btn_cancel is None else btn_cancel self.setWindowTitle(title) self.setText(text) image = QImage() image.loadFromData(question.question) self.setIconPixmap(QPixmap(image)) self.addButton(self.yes, QMessageBox.YesRole) self.addButton(self.no, QMessageBox.NoRole) self.addButton(self.cancel, QMessageBox.ApplyRole) winsound.PlaySound('SystemQuestion', winsound.SND_ASYNC) return self.exec_()
def addItem(self, label): label_text = label.text() if isinstance(label, QListWidgetItem) else label item = QListWidgetItem(self.filt(label_text)) image = QImage() image.loadFromData(list_item) item.setIcon(QIcon(QPixmap(image))) self.items.append(label_text) super().addItem(item)
def on_artwork_loaded(self): if self.artwork_content: imgWidget = QImage() imgWidget.loadFromData(self.artwork_content) picture = QPixmap(imgWidget) picture = picture.scaled(self.artwork_size, self.artwork_size, Qt.KeepAspectRatio) self.artwork_label.setPixmap(picture) else: logging.warn('[FAILED] GET {}'.format(self.artwork))
def send_error(self, title, text, btn=None): self.d = buttons.DarkerButton(parent=self.parent(), text='Ok') if btn is None else btn self.setWindowTitle(title) self.setText(text) image = QImage() image.loadFromData(err) self.setIconPixmap(QPixmap(image)) self.addButton(self.d, QMessageBox.AcceptRole) winsound.PlaySound('SystemHand', winsound.SND_ASYNC) return self.exec_()
def _read_image(self, path: Path) -> Optional[QImage]: data = self._read_file(path) if data: image = QImage() image.loadFromData(data, path.suffix[1:]) max_size = QSize(600, 400) image_size = image.size() if image_size.width() > max_size.width() or image_size.height( ) > max_size.height(): image = image.scaled(max_size, Qt.AspectRatioMode.KeepAspectRatio) return image
def run(self) -> None: for resourceItem in self.resourceItemList: # Read the url of the picture and the name of the pic picUrl = resourceItem.data(-2) picName = picUrl[picUrl.rfind('/') + 1:] cachePath = './temp/QImageCache/{}'.format(picName) if cachePath in self.parent.cache: resPic = self.parent.cache[cachePath] else: pic = self.parent.get('pic', [picUrl, picName]) resPic = QImage() resPic.loadFromData(pic) self.parent.cache[cachePath] = resPic resourceItem.setData(resPic, Qt.DecorationRole)
def send_information(self, title: str = 'Default title', text: str = 'Hi', btn: QPushButton = None): self.d = buttons.DarkerButton(parent=self.parent(), text='Ok') if btn is None else btn self.setWindowTitle(title) self.setText(text) image = QImage() image.loadFromData(information.information) self.setIconPixmap(QPixmap(image)) self.addButton(self.d, QMessageBox.AcceptRole) winsound.PlaySound('*', winsound.SND_ASYNC) return self.exec_()
def setup_category_playlists_view(self): self.current_view = StepViews.CATEGORY_PLAYLISTS_VIEW i, j = 0, 0 for playlist in self.categoryPlaylists: data = urllib.request.urlopen(playlist["images"][0]["url"]).read() label = ClickableLabel(self) label.setScaledContents(True) label.setFixedSize(190, 190) image = QImage(32, 32, QImage.Format_RGB32) image.loadFromData(data) pixmap = QPixmap(image) label.setPixmap(pixmap) self.layout.addWidget(label, i, j) j += 1 if j % 4 == 0: i += 1 j = 0
def CopyPicture(self): clipboard = QApplication.clipboard() owner = self.readImg if self.checkBox.isChecked(): p = owner.pictureData.get(owner.curIndex) if not p or not p.waifuData: QtBubbleLabel.ShowErrorEx(owner, "解码还未完成") return img = QImage() img.loadFromData(p.waifuData) clipboard.setImage(img) QtBubbleLabel.ShowMsgEx(owner, "复制成功") else: p = owner.pictureData.get(owner.curIndex) if not p or not p.data: QtBubbleLabel.ShowErrorEx(owner, "下载未完成") return img = QImage() img.loadFromData(p.data) clipboard.setImage(img) QtBubbleLabel.ShowMsgEx(owner, "复制成功") return
def __init__(self, obj=None, name=None): super(MainWidget, self).__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.obj = obj self.name = name ssl._create_default_https_context = ssl._create_unverified_context for item in self.obj: if item['name'] == self.name: self.ui.label_name.setText(item['name']) self.ui.label_status.setText(item['status']) self.ui.label_species.setText(item['species']) self.ui.label_gender.setText(item['gender']) self.ui.label_origin.setText(item['origin']) self.ui.label_location.setText(item['location']) url = str(item['image']) img = urllib.request.urlopen(url).read() image = QImage() image.loadFromData(img) pixmap = QPixmap(image) self.ui.label_picture.setPixmap(pixmap)
def __load_image(self, data): # type: (QByteArray) -> None """Creates and caches the QImage from the data. :param data: the data returned by the network request for the image """ image = QImage() loaded = image.loadFromData(data) if loaded: width = image.width() height = image.height() size = (width, height) centre_x = width / 2 centre_y = height / 2 centre = (centre_x, centre_y) _IMAGE_CACHE[self] = image _PIXMAP_CACHE[self] = {} # Cache the full-size pixmap get_pixmap(self, centre, size, size)
class QMoon(QWidget): """Small widget displays today's moon.""" def __init__(self, pos=(0, 0), parent=None, size=216, web=False, save=False, debug=0): super(QMoon, self).__init__(parent) self.total_images = 8760 self.moon_domain = "https://svs.gsfc.nasa.gov" self.moon_path_2021 = "/vis/a000000/a004800/a004874/" # https://svs.gsfc.nasa.gov/vis/a000000/a004900/a004955/frames/216x216_1x1_30p/moon.8597.jpg self.moon_path = "/vis/a000000/a004900/a004955/" self.debug = debug self.size = size self.get_from_web = web self.save = save # self.setGeometry(pos[0], pos[1], self.size, self.size) self.moon = QLabel(self) self.moon.setGeometry(pos[0], pos[1], self.size, self.size) self.update() self.timer = QTimer(self) self.timer.timeout.connect(self.update) self.timer.start(3600 * 1000) self.image = None self.pixmap = None self.moon_image_number = 1 @Slot() def update(self): if self.debug > 0: print("Updating the Moon Phase pixmap.") self.pixmap = self.get_moon_image() self.moon.setPixmap(self.pixmap) def get_moon_image_number(self): # # Conversion from the jscript. # now = datetime.utcnow() janone = datetime(now.year, 1, 1, 0, 0, 0) self.moon_image_number = round( (datetime.utcnow() - janone).total_seconds() / 3600) return self.moon_image_number <= self.total_images def get_moon_image(self): if not self.get_moon_image_number(): print("Could not get the moon. Are we in a new year?") if self.debug: print(f"We are using moon image number: {self.moon_image_number}") if self.size > 500 or self.get_from_web: if self.size > 2160: url = self.moon_domain+self.moon_path+"/frames/5760x3240_16x9_30p/" \ f"plain/moon.{self.moon_image_number:04d}.tif" elif self.size > 216: url = self.moon_domain+self.moon_path+"/frames/3840x2160_16x9_30p/" \ f"plain/moon.{self.moon_image_number:04d}.tif" else: url = self.moon_domain + self.moon_path + "/frames/216x216_1x1_30p/" \ f"moon.{self.moon_image_number:04d}.jpg" if self.debug: print(f"Getting image from url: {url}") req = requests.get(url) self.image = QImage() self.image.loadFromData(req.content, "tiff") size = self.image.size() if self.debug: print("Image size: ", size) if self.save: self.image.save(f"moon/moon.{self.moon_image_number:04d}.tiff") offset = (size.width() - size.height()) / 2 rect = QRect(offset, 0, size.height(), size.height()) self.image = self.image.copy(rect) pix = QPixmap.fromImage(self.image) pix = pix.scaled(self.size, self.size, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) return pix else: moon_file = f"moon/moon.{self.moon_image_number:04d}.jpg" pix = QPixmap(moon_file) pix = pix.scaled(self.size, self.size, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) return pix
def disp_image(self, reply): image_data = reply.readAll() image = QImage() image.loadFromData(image_data) self.dog_pixmap = QPixmap.fromImage(image).scaled(QSize(200, 200), Qt.KeepAspectRatio, Qt.FastTransformation) self.setPixmap(self.dog_pixmap)