class ImageViewer(QWidget): def __init__(self): super(ImageViewer, self).__init__() self.painter = QPainter() self.my_pen = QPen(QColor("red")) self.my_pen.setWidth(5) self.my_brush = QBrush(QColor("#123456")) self.photo = QPixmap() self.photo_rect = QRect() def set_pixmap(self, image_path): self.photo.load(image_path) self.repaint() def paintEvent(self, event): self.painter.begin(self) self.draw() self.painter.end() def draw(self): rect = self.rect() self.painter.setPen(self.my_pen) self.painter.setBrush(self.my_brush) photo = self.photo.scaled(QSize(rect.width(), rect.height()), Qt.KeepAspectRatio, Qt.SmoothTransformation) self.photo_rect.setRect(rect.x(), rect.y(), photo.width(), photo.height()) self.photo_rect.moveCenter(rect.center()) self.painter.drawPixmap(self.photo_rect, photo)
class MovieListDelegate(QItemDelegate): def __init__(self): super(MovieListDelegate, self).__init__() self.outline_pen = QPen(QColor("#444444")) self.background_brush = QBrush(QColor("black")) self.selected_brush = QBrush(QColor(76, 228, 239, 80)) self.mouse_over_brush = QBrush(QColor("yellow")) self.poster_pixmap = QPixmap() # self.temp_poster = pixmap.scaled(MovieItem.poster_size, Qt.KeepAspectRatio, Qt.SmoothTransformation) def paint(self, painter, option, index): rect = option.rect poster_file = index.data(Qt.UserRole) self.poster_pixmap.load(poster_file) poster_file_rescaled = self.poster_pixmap.scaled( MovieItem.poster_size, Qt.KeepAspectRatio, Qt.SmoothTransformation) painter.setPen(self.outline_pen) painter.setBrush(self.background_brush) painter.drawRect(rect) # posters poster_rect = QRect(rect.x(), rect.y(), poster_file_rescaled.width(), poster_file_rescaled.height()) poster_rect.moveCenter(rect.center()) painter.drawPixmap(poster_rect, poster_file_rescaled) if option.state & QStyle.State_Selected: painter.setBrush(self.selected_brush) painter.drawRect(rect)
def init(self): brush = QBrush() brush.setColor(Qt.black) brush.setStyle(Qt.SolidPattern) self.setBackgroundBrush(brush) font = QFont() font.setPointSize(20) font.setBold(True) self.one_play_text_item.setPlainText('One Player') self.two_plays_text_item.setPlainText('Two Players') self.one_play_text_item.setDefaultTextColor(Qt.white) self.two_plays_text_item.setDefaultTextColor(Qt.white) self.one_play_text_item.setFont(font) self.two_plays_text_item.setFont(font) self.one_play_text_item.setX(300) self.two_plays_text_item.setX(300) self.one_play_text_item.setY(self.y_list[0]) self.two_plays_text_item.setY(self.y_list[1]) self.addItem(self.one_play_text_item) self.addItem(self.two_plays_text_item) png = QPixmap() png.load('../images/%s' % TankType.PLAYER_ONE.pic) png = png.scaled(25, 25) self.indicator_item = QGraphicsPixmapItem(png) self.indicator_item.setRotation(90) self.indicator_item.setX(260) self.indicator_item.setY(self.y_list[self.selected] + 8) self.addItem(self.indicator_item)
def plot(self, filename): image = QPixmap() image.load(filename) item = QGraphicsPixmapItem(image) scene = QGraphicsScene() scene.addItem(item) self.ui.graphicsView.setScene(scene)
def set_image(self, path='', ): # check file exists pixmap = QPixmap() pixmap.load(path) # check null self.setPixmap(pixmap) self.adjustSize() return pixmap
def shoot(self): if self.tank.ammo_storage > 0: self.tank.ammo_storage -= 1 ammo_png = QPixmap() ammo_png.load('../images/ammo.png') ammo_png = ammo_png.scaled(5, 8) ammo = AmmoItem(ammo_png, self, self.direction) self.scene().addItem(ammo)
def set_playback_button(self, playback_status: str): pixmap = QPixmap() if playback_status == 'Playing': pixmap.load(':/Images/pause.png') else: pixmap.load(':/Images/play.png') self.pause_btn.setIcon(pixmap)
def __init__(self, tank, direction: Direction): png = QPixmap() png.load('../images/%s' % tank.pic) png = png.scaled(cube_size, cube_size) QGraphicsPixmapItem.__init__(self, png) self.directions = [] self.direction = direction self.tank = Tank(tank) self.setTransformOriginPoint(cube_size / 2, cube_size / 2) self.move_timer = QTimer() self.move_timer.setInterval(interval) self.move_timer.timeout.connect(self.move) self.move_timer.start()
def draw_terrain(self, terrain_list: list): size = int(cube_size / 2) for r, line in enumerate(terrain_list): for c, cell in enumerate(line): png = QPixmap() if cell.terrain == TerrainType.BRINK: png.load('../images/brink.png') elif cell.terrain == TerrainType.STEEL: png.load('../images/steel.png') elif cell.terrain == TerrainType.GRASS: png.load('../images/grass.png') elif cell.terrain == TerrainType.WATER: png.load('../images/water.png') else: continue png = png.scaled(size, size) for index, state in enumerate(cell.state): x = c * cube_size + index % 2 * size y = r * cube_size + index // 2 * size if state: item = TerrainItem(png, cell.terrain) if cell.terrain == TerrainType.GRASS: item.setZValue(10) item.setX(x) item.setY(y) self.addItem(item)
def eventFilter(self, watched: QLabel, event: QEvent): if event.type() == QEvent.DragEnter: if event.mimeData().hasUrls(): event.accept() else: event.ignore() return True elif event.type() == QEvent.DragMove: if event.mimeData().hasUrls(): event.setDropAction(Qt.CopyAction) event.accept() else: event.ignore() return True elif event.type() == QEvent.Drop: path = event.mimeData().urls()[0].toLocalFile() pix = QPixmap() _ = pix.load(path) self.parent.setPixmap(pix) self.parent.org_pix = pix self.resizePixmap(self.parent) return True elif event.type() == QEvent.Resize: self.resizePixmap(self.parent) return True else: return False
def __init__(self, model, parent=None): super().__init__(parent) self.model = model self.chosen_user_record = None self.settings = QSettings() default_user = self.settings.value("default_user", 0) self.setWindowTitle(self.tr("pyOffer - Choose user")) icon = QIcon() icon.addFile(u":/ico") self.setWindowIcon(icon) top_level_layout = QtWidgets.QVBoxLayout(self) logo_label = QtWidgets.QLabel(self) logo = QPixmap() logo.load(u":/klog") logo_label.setPixmap(logo) logo_label.setAlignment(Qt.AlignCenter) top_level_layout.addWidget(logo_label) horizontal_layout = QtWidgets.QHBoxLayout() icon_label = QtWidgets.QLabel(self) pixmap = QPixmap(":/user").scaled(128, 128, Qt.KeepAspectRatio) icon_label.setPixmap(pixmap) icon_label.setAlignment(Qt.AlignCenter) horizontal_layout.addWidget(icon_label) vertical_layout = QtWidgets.QVBoxLayout() label_description = QtWidgets.QLabel(self) label_description.setText(self.tr("Please choose user:")) vertical_layout.addWidget(label_description) self.list_view = QtWidgets.QListView(self) self.list_view.setModel(self.model) self.list_view.setModelColumn(1) self.list_view.setSelectionBehavior(QtWidgets.QListView.SelectRows) self.list_view.setCurrentIndex(self.model.index(default_user, 1)) vertical_layout.addWidget(self.list_view) self.buttons = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) self.buttons.accepted.connect(self.ok) self.buttons.rejected.connect(self.reject) vertical_layout.addWidget(self.buttons) horizontal_layout.addLayout(vertical_layout) top_level_layout.addLayout(horizontal_layout)
def load_album_cover(self, art_url: str): try: pixmap = QPixmap() if art_url.startswith(':/'): pixmap.load(art_url) else: result = request.urlopen(art_url).read() pixmap.loadFromData(result) # Clearing thread queue to load only latest cover if self.latest_cover_url != art_url: self.album_cover.setText('LOADING') return self.album_cover.setPixmap(pixmap) self.is_album_cover_loaded = True except Exception: pass
class BackdropImageWidget(QWidget): def __init__(self): super(BackdropImageWidget, self).__init__() self.backdrop_image = "" self.painter = QPainter() self.pixmap = QPixmap(self.backdrop_image) self.fill_brush = QBrush(QColor(0, 0, 0, 210)) def set_backdrop_image(self, image_path): self.backdrop_image = image_path self.pixmap.load(image_path) def paintEvent(self, event): self.painter.begin(self) self.draw() self.painter.end() def draw(self): rect = self.rect() scaled_image = self.pixmap.scaledToWidth(rect.width(), Qt.SmoothTransformation) if scaled_image.height() < rect.height(): scaled_image = self.pixmap.scaledToHeight(rect.height(), Qt.SmoothTransformation) image_rect = QRect(rect.x(), rect.y(), scaled_image.width(), scaled_image.height()) image_rect.moveCenter(rect.center()) self.painter.drawPixmap(image_rect, scaled_image) self.painter.setBrush(self.fill_brush) self.painter.setPen(Qt.NoPen) self.painter.drawRect(rect)
class MainWindow(QMainWindow, Ui_MainWindow): """ Ui 클래스 상속 """ def __init__(self): global PN super().__init__() """ Ui 설정 """ self.setupUi(self) """ 버튼 클릭 시그널에 슬롯 추가 """ #QPixmap 객체 생성 self.image1 = QPixmap() self.image2 = QPixmap() self.CAI = QPixmap() self.TinLogo = QPixmap() CAILAB_Logo = resource_path( "C:/Users/user/Desktop/RIB_Auto/image/CAILAB.png") self.CAI.load(CAILAB_Logo) self.CAI = self.CAI.scaled(261, 81) self.CAILAB.setPixmap(self.CAI) Tin_Logo = resource_path( "C:/Users/user/Desktop/RIB_Auto/image/T_in_Robotics.png") self.TinLogo.load(Tin_Logo) self.TinLogo = self.TinLogo.scaled(261, 121) self.Tin_Logo.setPixmap(self.TinLogo) #PN = self.PortNumber.text() #PN = str(PN) #self.PortNumber.setPlaceholderText("Set your password") #self.PortNumber.setEchMode(QLineEdit.Password); self.Load1.clicked.connect(self.Load1Clicked) self.Load2.clicked.connect(self.Load2Clicked) self.Predict.clicked.connect(self.PredictClicked) self.Tin.clicked.connect(self.TinClicked) self.Launch_PLC.clicked.connect(self.Launch_PLC_On_clicked) #버튼에 이미지 넣기 pixmap = QPixmap(Tin_Logo) button_icon = QIcon(pixmap) self.Tin.setIcon(button_icon) #부재리스트 도면 업로드 def Load1Clicked(self): global image1 image1 = self.open() image1 = str(image1) self.image1.load(image1) self.image1 = self.image1.scaled(261, 192) self.Display1.setPixmap(self.image1) return image1 #구조평면도 도면 업로드 def Load2Clicked(self): global image2 image2 = self.open() image2 = str(image2) self.image2.load(image2) self.image2 = self.image2.scaled(261, 192) self.Display2.setPixmap(self.image2) return image2 def Launch_PLC_On_clicked(self): global PN global state global LP self.PortNumber.setRange(1, 9) PN = self.PortNumber.value() state = 0 state = State() state.show() return 0 #열기 def open(self): fileName, _ = QFileDialog.getOpenFileName( self, "Open Image File", ".", "Images (*.png *.xpm *.jpg)") if fileName != "": self.load(fileName) return fileName #텍스트파일열기 def txtopen(self): fileName, _ = QFileDialog.getOpenFileName(self, "Open txt File", ".", "Predict_Result (*.txt)") if fileName != "": self.txtload(fileName) return fileName #로드 def load(self, fileName): image = QImage(fileName) if image.isNull(): QMessageBox.information(self, QApplication.applicationName(), "Cannot load " + fileName) def txtload(self, fileName): fileName = open(fileName, 'r') with fileName: fileName = fileName.read() #if fileName.isNull(): # QMessageBox.information(self,QApplication.applicationName(), # "Cannot load "+fileName) #늑근 자동화 도면해석 실행 def PredictClicked(self): global r1 global r2 global r3 global result r1 = ['1b6', '1g2', '1b1', '1b1', '1b5'] r2 = [4553, 3426, 5789, 7773, 7353] r3 = [{ 'a1': 1, 'b1': 2 }, { 'a2': 3, 'b2': 4 }, { 'a3': 5, 'b3': 6 }, { 'a4': 7, 'b4': 8 }, { 'a5': 9, 'b5': 10 }] result = 0 result = Result() result.show() #sys.exit(app.exec_()) #트인 홈페이지 접속 def TinClicked(self): url = 'http://t-in.co.kr/' webbrowser.open(url)
class TeamSelectorDialog(QtWidgets.QDialog): def __init__(self, parent=None): if not parent: ptr = omui.MQtUtil.mainWindow() parent = wrapInstance(long(ptr), QtWidgets.QWidget) super(TeamSelectorDialog, self).__init__(parent) # Teams with open("V:/projects/coding/teamShirts/teams.py") as json_file: self.teams = json.load(json_file) countries = self.teams.keys() # Layouts main_layout = QtWidgets.QVBoxLayout() country_layout = QtWidgets.QHBoxLayout() league_layout = QtWidgets.QHBoxLayout() team_layout = QtWidgets.QHBoxLayout() button_layout = QtWidgets.QHBoxLayout() display_layout = QtWidgets.QHBoxLayout() # Widgets main_label = QtWidgets.QLabel("Team Selector:") self.country_cb = QtWidgets.QComboBox() self.country_cb.addItems(countries) self.country_cb.currentTextChanged.connect(self.country_click_event) country_label = QtWidgets.QLabel("Country: ") league_label = QtWidgets.QLabel("League: ") self.league_list = QtWidgets.QListWidget() self.league_list.setFixedSize(250, 100) self.league_list.itemClicked.connect(self.league_clicked_event) team_label = QtWidgets.QLabel("Team:") self.team_list = QtWidgets.QListWidget() self.team_list.setFixedSize(250, 100) self.team_list.itemClicked.connect(self.team_clicked_event) self.home_pb = QtWidgets.QPushButton("Set as &Home team") self.home_pb.clicked.connect(self.home_button_clicked) self.home_pb.setFixedWidth(120) self.away_pb = QtWidgets.QPushButton("Set as &Away team") self.away_pb.clicked.connect(self.away_button_clicked) self.away_pb.setFixedWidth(120) display_label = QtWidgets.QLabel("Team shirt: ") self.display_pixmap = QPixmap() self.display_pixmap_label = QtWidgets.QLabel() self.display_pixmap_label.setStyleSheet("border: 1px solid black") self.display_pixmap_label.setFixedSize(120, 120) self.display_pixmap_label.setPixmap(self.display_pixmap) self.display_pixmap_label.setScaledContents(True) # setup main_layout.addWidget(main_label) main_layout.addItem(country_layout) country_layout.addWidget(country_label) country_layout.addWidget(self.country_cb) main_layout.addItem(league_layout) league_layout.addWidget(league_label) league_layout.addWidget(self.league_list) main_layout.addItem(team_layout) team_layout.addWidget(team_label) team_layout.addWidget(self.team_list) main_layout.addItem(display_layout) display_layout.addWidget(display_label) display_layout.addWidget(self.display_pixmap_label) main_layout.addItem(button_layout) button_layout.addWidget(self.home_pb) button_layout.addWidget(self.away_pb) # populate default values self.country_clicked = "England" self.leagues = list(self.teams.get(self.country_clicked).keys()) self.league_list.addItems(self.leagues) self.league_clicked = self.leagues[self.leagues.index( "Premiere League")] self.teams_in_league = self.teams.get(self.country_clicked).get( self.league_clicked) self.team_list.addItems(self.teams_in_league) self.setWindowTitle("Team Shirt Selector") self.setLayout(main_layout) self.resize(400, 300) self.country_cb.setCurrentIndex(0) def country_click_event(self): self.league_list.clear() self.country_clicked = self.country_cb.currentText() self.leagues = list(self.teams.get(self.country_clicked).keys()) self.league_list.addItems(self.leagues) def league_clicked_event(self): self.team_list.clear() row_clicked = self.league_list.currentRow() self.league_clicked = self.leagues[row_clicked] self.teams_in_league = self.teams.get(self.country_clicked).get( self.league_clicked) self.team_list.addItems(self.teams_in_league) def team_clicked_event(self): row_clicked = self.team_list.currentRow() self.team_clicked = self.teams_in_league[row_clicked] print("team clicked: " + self.team_clicked) print("lower_case: " + lower_case(self.team_clicked)) self.display_pixmap.load(self.get_thumb_file()) self.display_pixmap_label.setPixmap(self.display_pixmap) #self.display_pixmap_label.show() def home_button_clicked(self): print("Thumb file: " + str(self.get_thumb_file())) print("Getting texture node...") try: texture_node = self.get_texture_node("home_kit_shirt") except NameError: print("Texture node only available in Maya") texture_node = "texture_node_from_Maya" print("texture node: " + str(texture_node)) print("path to texture file: " + self.texture_file_name()) UDIM_file = self.get_UDIM_file() try: mc.setAttr((str(texture_node) + ".fileTextureName"), UDIM_file, type="string") # mc.ogs(regenerateUVTilePreview("home_kit_shirt_TEX")) mel.eval("generateUvTilePreview home_kit_shirt_TEX;") except NameError: print(("setAttr only available in Maya (NameError)")) def away_button_clicked(self): print("Thumb file: " + str(self.get_thumb_file())) print("Getting texture node...") try: texture_node = self.get_texture_node("away_kit_shirt") except NameError: print("Texture node only available in Maya") texture_node = "texture_node_from_Maya" print("texture node: " + str(texture_node)) print("path to texture file: " + self.texture_file_name()) UDIM_file = self.get_UDIM_file() try: mc.setAttr((str(texture_node) + ".fileTextureName"), UDIM_file, type="string") mel.eval("generateUvTilePreview away_kit_shirt_TEX;") except NameError: print(("setAttr only available in Maya (NameError)")) def get_texture_node(self, selected): selectedNode = selected + "Shape" print("Selected node: " + str(selectedNode)) shadeEng = mc.listConnections(selectedNode, type="shadingEngine") print("ShadeEng: " + str(shadeEng)) materials = mc.ls(mc.listConnections(shadeEng), materials=True) print("Materials: " + str(materials)) texture_node = mc.listConnections(materials)[0] print("Texture node: " + str(texture_node)) return texture_node def get_thumb_file(self): thumb_file = self.texture_file_name() + "_1001.png" print("thumb file: " + thumb_file) return thumb_file def get_UDIM_file(self): UDIM_file = self.texture_file_name() + "_<UDIM>.png" print("UDIM file: " + str(UDIM_file)) return UDIM_file def texture_file_name(self): country = self.country_clicked league = self.league_clicked team = self.team_clicked base_path = "V:\\projects\\StadiumCrowd\\Assets\\clothing\\clubShirts\\" texture_file_name = base_path + lower_case( country) + "\\" + lower_case(league) + "\\" + lower_case(team) return texture_file_name
class RenderArea(QWidget): points = QPolygon([ QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70) ]) Line, Points, Polyline, Polygon, Rect, RoundedRect, Ellipse, Arc, Chord, \ Pie, Path, Text, Pixmap = range(13) def __init__(self, parent=None): super(RenderArea, self).__init__(parent) self.pen = QPen() self.brush = QBrush() self.pixmap = QPixmap() self.shape = RenderArea.Polygon self.antialiased = False self.transformed = False self.pixmap.load(':/images/qt-logo.png') self.setBackgroundRole(QPalette.Base) self.setAutoFillBackground(True) def minimumSizeHint(self): return QSize(100, 100) def sizeHint(self): return QSize(400, 200) def setShape(self, shape): self.shape = shape self.update() def setPen(self, pen): self.pen = pen self.update() def setBrush(self, brush): self.brush = brush self.update() def setAntialiased(self, antialiased): self.antialiased = antialiased self.update() def setTransformed(self, transformed): self.transformed = transformed self.update() def paintEvent(self, event): rect = QRect(10, 20, 80, 60) path = QPainterPath() path.moveTo(20, 80) path.lineTo(20, 30) path.cubicTo(80, 0, 50, 50, 80, 80) startAngle = 30 * 16 arcLength = 120 * 16 painter = QPainter(self) painter.setPen(self.pen) painter.setBrush(self.brush) if self.antialiased: painter.setRenderHint(QPainter.Antialiasing) for x in range(0, self.width(), 100): for y in range(0, self.height(), 100): painter.save() painter.translate(x, y) if self.transformed: painter.translate(50, 50) painter.rotate(60.0) painter.scale(0.6, 0.9) painter.translate(-50, -50) if self.shape == RenderArea.Line: painter.drawLine(rect.bottomLeft(), rect.topRight()) elif self.shape == RenderArea.Points: painter.drawPoints(RenderArea.points) elif self.shape == RenderArea.Polyline: painter.drawPolyline(RenderArea.points) elif self.shape == RenderArea.Polygon: painter.drawPolygon(RenderArea.points) elif self.shape == RenderArea.Rect: painter.drawRect(rect) elif self.shape == RenderArea.RoundedRect: painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize) elif self.shape == RenderArea.Ellipse: painter.drawEllipse(rect) elif self.shape == RenderArea.Arc: painter.drawArc(rect, startAngle, arcLength) elif self.shape == RenderArea.Chord: painter.drawChord(rect, startAngle, arcLength) elif self.shape == RenderArea.Pie: painter.drawPie(rect, startAngle, arcLength) elif self.shape == RenderArea.Path: painter.drawPath(path) elif self.shape == RenderArea.Text: painter.drawText(rect, Qt.AlignCenter, "PySide 2\nQt %s" % qVersion()) elif self.shape == RenderArea.Pixmap: painter.drawPixmap(10, 10, self.pixmap) painter.restore() painter.setPen(self.palette().dark().color()) painter.setBrush(Qt.NoBrush) painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))
class RenderArea(QWidget): points = QPolygon( [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)]) Line, Points, Polyline, Polygon, Rect, RoundedRect, Ellipse, Arc, Chord, \ Pie, Path, Text, Pixmap = range(13) def __init__(self, parent=None): super(RenderArea, self).__init__(parent) self.pen = QPen() self.brush = QBrush() self.pixmap = QPixmap() self.shape = RenderArea.Polygon self.antialiased = False self.transformed = False self.pixmap.load(':/images/qt-logo.png') self.setBackgroundRole(QPalette.Base) self.setAutoFillBackground(True) def minimumSizeHint(self): return QSize(100, 100) def sizeHint(self): return QSize(400, 200) def setShape(self, shape): self.shape = shape self.update() def setPen(self, pen): self.pen = pen self.update() def setBrush(self, brush): self.brush = brush self.update() def setAntialiased(self, antialiased): self.antialiased = antialiased self.update() def setTransformed(self, transformed): self.transformed = transformed self.update() def paintEvent(self, event): rect = QRect(10, 20, 80, 60) path = QPainterPath() path.moveTo(20, 80) path.lineTo(20, 30) path.cubicTo(80, 0, 50, 50, 80, 80) startAngle = 30 * 16 arcLength = 120 * 16 painter = QPainter(self) painter.setPen(self.pen) painter.setBrush(self.brush) if self.antialiased: painter.setRenderHint(QPainter.Antialiasing) for x in range(0, self.width(), 100): for y in range(0, self.height(), 100): painter.save() painter.translate(x, y) if self.transformed: painter.translate(50, 50) painter.rotate(60.0) painter.scale(0.6, 0.9) painter.translate(-50, -50) if self.shape == RenderArea.Line: painter.drawLine(rect.bottomLeft(), rect.topRight()) elif self.shape == RenderArea.Points: painter.drawPoints(RenderArea.points) elif self.shape == RenderArea.Polyline: painter.drawPolyline(RenderArea.points) elif self.shape == RenderArea.Polygon: painter.drawPolygon(RenderArea.points) elif self.shape == RenderArea.Rect: painter.drawRect(rect) elif self.shape == RenderArea.RoundedRect: painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize) elif self.shape == RenderArea.Ellipse: painter.drawEllipse(rect) elif self.shape == RenderArea.Arc: painter.drawArc(rect, startAngle, arcLength) elif self.shape == RenderArea.Chord: painter.drawChord(rect, startAngle, arcLength) elif self.shape == RenderArea.Pie: painter.drawPie(rect, startAngle, arcLength) elif self.shape == RenderArea.Path: painter.drawPath(path) elif self.shape == RenderArea.Text: painter.drawText(rect, Qt.AlignCenter, "PySide 2\nQt %s" % qVersion()) elif self.shape == RenderArea.Pixmap: painter.drawPixmap(10, 10, self.pixmap) painter.restore() painter.setPen(self.palette().dark().color()) painter.setBrush(Qt.NoBrush) painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))