示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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
示例#4
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_()
示例#5
0
 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)
示例#6
0
 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))
示例#7
0
 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_()
示例#8
0
文件: htmlview.py 项目: czeppi/cc-pim
 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
示例#9
0
 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)
示例#10
0
 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_()
示例#11
0
    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
示例#12
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
示例#13
0
    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)
示例#14
0
    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)
示例#15
0
文件: moon.py 项目: mholtrop/Qt_clock
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
示例#16
0
 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)