class LabelConfigurator(QDialog): def __init__(self, boxManager, spawnPos): super().__init__() # Variables self.spawnPos = spawnPos # Objects self.boxManager = boxManager self.layout = QVBoxLayout(self) self.contentLayout = QHBoxLayout() self.settingsLayout = QVBoxLayout() self.isOccludedButton = Check('Occluded', boxManager.getRecentIsOccluded()) self.isTruncatedButton = Check('Truncated', boxManager.getRecentIsTruncated()) self.isGroupOfButton = Check('Group Of', boxManager.getRecentIsGroupOf()) self.isDepictionButton = Check('Depiction', boxManager.getRecentIsDepiction()) self.isInsideButton = Check('Inside', boxManager.getRecentIsInside()) self.acceptButton = QPushButton('Accept') self.cancelButton = QPushButton('Cancel') self.labelsModel = QStringListModel() self.labelsView = QListView() # Layout self.setWindowFlags(Qt.Popup) self.settingsLayout.setAlignment(Qt.AlignTop | Qt.AlignCenter) self.settingsLayout.setMargin(0) self.settingsLayout.addWidget(self.isOccludedButton) self.settingsLayout.addWidget(self.isTruncatedButton) self.settingsLayout.addWidget(self.isGroupOfButton) self.settingsLayout.addWidget(self.isDepictionButton) self.settingsLayout.addWidget(self.isInsideButton) self.settingsLayout.addStretch(1) self.settingsLayout.addWidget(self.acceptButton) self.settingsLayout.addWidget(self.cancelButton) self.contentLayout.addWidget(self.labelsView) self.contentLayout.addLayout(self.settingsLayout) self.layout.addLayout(self.contentLayout) # Styling self.setStyleSheet('LabelConfigurator { ' 'background-color: ' + ThemeManager.BG_L1 + ';' 'border-top-left-radius: ' + str(ThemeManager.CURVE) + 'px;' 'border-bottom-left-radius: ' + str(ThemeManager.CURVE) + 'px;' 'border-top-right-radius: ' + str(ThemeManager.CURVE) + 'px;' 'border-bottom-right-radius: ' + str(ThemeManager.CURVE) + 'px;' 'border-width: 0px;' 'border-style: solid;' '}' 'QPushButton {' 'background-color: ' + ThemeManager.BG_L2 + ';' 'border-radius: 10px;' 'color: ' + ThemeManager.LABEL + ';' 'font-size: 14px;' '}' 'QPushButton:hover {' 'background-color: ' + ThemeManager.BG_L3 + ';' '}' 'QListView { ' 'background-color: ' + ThemeManager.BG_L2 + ';' '}') self.layout.setMargin(20) self.layout.setSpacing(10) self.contentLayout.setMargin(0) self.labelsModel.setStringList(boxManager.loadLabels()) self.labelsView.setFixedWidth(80) self.labelsView.setFrameStyle(QFrame.NoFrame) self.labelsView.setModel(self.labelsModel) self.labelsView.setItemDelegate(ListDelegate.ListDelegate()) index = None try: row = self.labelsModel.stringList().index( boxManager.getRecentLabelName()) index = self.labelsModel.index(row) except ValueError: index = self.labelsModel.index(0) if index is not None: self.labelsView.setCurrentIndex(index) # Connections self.acceptButton.clicked.connect(self.close) self.cancelButton.clicked.connect(self.reject) def showEvent(self, event): super().showEvent(event) self.move(self.spawnPos) def closeEvent(self, event): labelConfig = (self.labelsView.selectedIndexes()[0].data( role=Qt.DisplayRole), self.isOccludedButton.getEnabled(), self.isTruncatedButton.getEnabled(), self.isGroupOfButton.getEnabled(), self.isDepictionButton.getEnabled(), self.isInsideButton.getEnabled()) self.labelAccepted.emit(labelConfig) super().closeEvent(event) def getLabelConfig(self): return labelAccepted = Signal(object)
pyautogui.click() pyautogui.typewrite(list("Murad4023") + ['enter'], interval=interval) pyautogui.moveTo(imgxy[0], imgxy[1] + 220, duration=duration) pyautogui.click() pyautogui.typewrite(list("3244dmk") + ['enter'], interval=interval) pyautogui.moveTo(imgxy[0], imgxy[1] + 265, duration=duration) pyautogui.click() @staticmethod def handle_proxy_auth_req(url, auth, proxyhost): auth.setUser("80LgxYnqOE") auth.setPassword("gEkKsvssAK") if __name__ == "__main__": app = QApplication(sys.argv) browser = Browser() list_view = QListView() list_view.setFixedWidth(300) grid = QGridLayout() grid.addWidget(list_view, 0, 1) grid.addWidget(browser, 0, 2) main_frame = QWidget() main_frame.setMinimumSize(800, 600) main_frame.setLayout(grid) main_frame.show() sys.exit(app.exec_())
class Ui_FE14CharacterEditor(QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.search_bar = QLineEdit() self.search_bar.setPlaceholderText("Search...") self.search_bar.setFixedWidth(225) self.characters_list_view = QListView() self.characters_list_view.setContextMenuPolicy( QtCore.Qt.CustomContextMenu) self.characters_list_view.setFixedWidth(225) self.characters_list_layout = QVBoxLayout() self.characters_list_layout.addWidget(self.search_bar) self.characters_list_layout.addWidget(self.characters_list_view) self.character_details_box = QGroupBox(title="Character Details") self.portrait_display = QGraphicsView() self.portrait_display.setFixedSize(140, 140) self.character_details_form_contents_1 = QWidget() self.character_details_form_contents_2 = QWidget() self.character_details_layout = QHBoxLayout() self.character_details_layout.addWidget(self.portrait_display) self.character_details_layout.addWidget( self.character_details_form_contents_1) self.character_details_layout.addWidget( self.character_details_form_contents_2) self.character_details_box.setLayout(self.character_details_layout) self.character_details_box.setFixedHeight(200) self.tab_widget = QTabWidget() self.ids_tab = QWidget() self.classes_tab = QWidget() self.stats_tab = QScrollArea() self.skills_tab = QScrollArea() self.misc_tab = QScrollArea() self.portraits_tab = PortraitViewer() self.stats_contents = QWidget() self.stats_tab.setWidget(self.stats_contents) self.stats_tab.setWidgetResizable(True) self.stats_layout = QVBoxLayout() self.stats_layout.setAlignment(QtCore.Qt.AlignTop) self.stats_contents.setLayout(self.stats_layout) self.skills_contents = QWidget() self.skills_tab.setWidget(self.skills_contents) self.skills_tab.setWidgetResizable(True) self.misc_contents = QWidget() self.misc_tab.setWidget(self.misc_contents) self.misc_tab.setWidgetResizable(True) self.misc_layout = QVBoxLayout() self.misc_layout.setAlignment(QtCore.Qt.AlignTop) self.misc_contents.setLayout(self.misc_layout) self.tab_widget.addTab(self.ids_tab, "IDs") self.tab_widget.addTab(self.classes_tab, "Classes") self.tab_widget.addTab(self.stats_tab, "Stats") self.tab_widget.addTab(self.skills_tab, "Skills") self.tab_widget.addTab(self.misc_tab, "Misc.") self.tab_widget.addTab(self.portraits_tab, "Portraits") self.editor_layout = QVBoxLayout() self.editor_layout.addWidget(self.character_details_box) self.editor_layout.addWidget(self.tab_widget) self.main_layout = QHBoxLayout() self.main_layout.addLayout(self.characters_list_layout) self.visual_splitter = QFrame() self.visual_splitter.setFrameShape(QFrame.VLine) self.visual_splitter.setFrameShadow(QFrame.Sunken) self.main_layout.addWidget(self.visual_splitter) self.main_layout.addLayout(self.editor_layout) self.tool_bar = QToolBar() self.action_add = QAction(text="Add") self.action_remove = QAction(text="Remove") self.action_copy_to = QAction(text="Copy To") self.tool_bar.addActions( [self.action_add, self.action_remove, self.action_copy_to]) self.addToolBar(self.tool_bar) self.resize(1000, 600) central_widget = QWidget() central_widget.setLayout(self.main_layout) self.setWindowTitle("Character Editor") self.setWindowIcon(QIcon("paragon.ico")) self.setCentralWidget(central_widget)
from PySide2.QtGui import QStandardItemModel, QStandardItem from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEnginePage, QWebEngineProfile from PySide2.QtWidgets import QGridLayout, QLineEdit, QWidget, QHeaderView, QListView from PySide2.QtWebEngineCore import QWebEngineUrlRequestInterceptor from PySide2 import QtNetwork if __name__ == "__main__": app = QApplication(sys.argv) main_frame = QWidget() listView = QListView() browser = QWebEngineView() grid = QGridLayout() ledit = QLineEdit() ledit.resize(50, 20) listView.setFixedWidth(250) listView.setWindowTitle('Example List') model = QStandardItemModel(listView) foods = [ 'Cookie dough', # Must be store-bought 'Hummus', # Must be homemade 'Spaghetti', # Must be saucy 'Dal makhani', # Must be spicy 'Chocolate whipped cream' # Must be plentiful ] for food in foods: # Create an item with a caption item = QStandardItem(food)
class FormMidContextWidget(QtWidgets.QWidget): #定义成员变量 #定义信号 def __init__(self): super().__init__() self.__initForm() self.__loadMusicLibraryListWidgetData() self.__loadSongsNameListWidgetData() self.__loadCollectionMusicListWidgetData() def __initForm(self): self.mainLayout = QHBoxLayout() self.mainLayout.setContentsMargins(1, 1, 1, 1) self.contextFrame = QtWidgets.QFrame() self.contextFrame.setObjectName("contextFrame") self.midContextLayout = QHBoxLayout() self.midContextLayout.setSpacing(1) self.midContextLayout.setContentsMargins(0, 1, 0, 1) self.midLeftFrame = QtWidgets.QFrame() self.midLeftFrame.setObjectName("midLeftFrame") self.midLeftLayout = QVBoxLayout() self.midLeftFrame.setLayout(self.midLeftLayout) self.midLeftLayout.setSpacing(0) self.midLeftLayout.setContentsMargins(2, 2, 2, 2) self.musicLibraryTitleLabel = QLabel("音乐库") self.textFont = QFont("微软雅黑", 11) self.textFont.setBold(True) self.musicLibraryTitleLabel.setFont(self.textFont) self.musicLibraryListView = QListView() self.musicLibraryListView.setFixedHeight(140) self.musicLibraryListView.setObjectName('musicLibraryListView') self.musicLibraryListView.setFixedWidth(190) self.localCollectionTitleLabel = QLabel("本地收藏") self.localCollectionTitleLabel.setFont(self.textFont) self.localCollectionListView = QListView() self.localCollectionListView.setObjectName('localCollectionListView') self.localCollectionListView.setFixedWidth(190) self.songsNameListTitleLabel = QLabel("歌单列表") self.songsNameListTitleLabel.setFont(self.textFont) self.songsNameListView = QListView() self.songsNameListView.setObjectName('songsNameListView') self.songsNameListView.setFixedWidth(190) self.songsNameListView.setFixedHeight(300) self.midLeftLayout.addWidget(self.musicLibraryTitleLabel) self.midLeftLayout.addWidget(self.musicLibraryListView) self.midLeftLayout.addWidget(self.songsNameListTitleLabel) self.midLeftLayout.addWidget(self.songsNameListView) self.midLeftLayout.addWidget(self.localCollectionTitleLabel) self.midLeftLayout.addWidget(self.localCollectionListView) self.rightContextStackWidget = QStackedWidget() self.testLabel = QLabel() self.testLabel.setScaledContents(True) self.testLabel.setPixmap( QPixmap(":/icon/Resources/icon/icon-meinv.jpg").scaled( self.testLabel.width(), self.testLabel.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)) self.rightContextStackWidget.addWidget(self.testLabel) self.midContextLayout.addWidget(self.midLeftFrame) self.midContextLayout.addWidget(self.rightContextStackWidget) self.midContextLayout.setStretch(0, 0) self.midContextLayout.setStretch(1, 1) self.contextFrame.setLayout(self.midContextLayout) self.mainLayout.addWidget(self.contextFrame) self.setLayout(self.mainLayout) def __loadMusicLibraryListWidgetData(self): self.textFont = QFont("微软雅黑", 11) self.localMusicItemData = QStandardItem("本地音乐") self.localMusicItemData.setFont(self.textFont) self.localMusicItemData.setEditable(False) self.localMusicItemData.setData( QIcon(":/icon/Resources/icon/icon-localmusic.svg"), Qt.DecorationRole) self.wangyiYunItemData = QStandardItem("网易云音乐") self.wangyiYunItemData.setFont(self.textFont) self.wangyiYunItemData.setEditable(False) self.wangyiYunItemData.setData( QIcon(":/icon/Resources/icon/icon-wangyiyunmusic.svg"), Qt.DecorationRole) self.qqMusicItemData = QStandardItem("QQ音乐") self.qqMusicItemData.setFont(self.textFont) self.qqMusicItemData.setEditable(False) self.qqMusicItemData.setData( QIcon(":/icon/Resources/icon/icon-qqmusic.svg"), Qt.DecorationRole) self.xiaMiItemData = QStandardItem("虾米音乐") self.xiaMiItemData.setFont(self.textFont) self.xiaMiItemData.setEditable(False) self.xiaMiItemData.setData( QIcon(":/icon/Resources/icon/icon-xiamimusic.svg"), Qt.DecorationRole) self.musicLibraryModel = QStandardItemModel() self.musicLibraryModel.appendRow(self.localMusicItemData) self.musicLibraryModel.appendRow(self.wangyiYunItemData) self.musicLibraryModel.appendRow(self.qqMusicItemData) self.musicLibraryModel.appendRow(self.xiaMiItemData) self.musicLibraryListView.setSpacing(2) self.musicLibraryListView.setModel(self.musicLibraryModel) def __loadSongsNameListWidgetData(self): self.wubaiItemData = QStandardItem("伍佰&China blue") self.textFont = QFont("微软雅黑", 11) self.wubaiItemData.setFont(self.textFont) self.wubaiItemData.setEditable(False) self.wubaiItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.zongguanxianItemData = QStandardItem("纵贯线") self.zongguanxianItemData.setFont(self.textFont) self.zongguanxianItemData.setEditable(False) self.zongguanxianItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.zhaoleiItemData = QStandardItem("赵雷专辑") self.zhaoleiItemData.setFont(self.textFont) self.zhaoleiItemData.setEditable(False) self.zhaoleiItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.xuweiItemData = QStandardItem("许巍专辑") self.xuweiItemData.setFont(self.textFont) self.xuweiItemData.setEditable(False) self.xuweiItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.zhouhuajianItemData = QStandardItem("周华健专辑") self.zhouhuajianItemData.setFont(self.textFont) self.zhouhuajianItemData.setEditable(False) self.zhouhuajianItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.banderuiItemData = QStandardItem("班得瑞专辑") self.banderuiItemData.setFont(self.textFont) self.banderuiItemData.setEditable(False) self.banderuiItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.yaogunItemData = QStandardItem("摇滚专辑") self.yaogunItemData.setFont(self.textFont) self.yaogunItemData.setEditable(False) self.yaogunItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.yinshiyuanshenItemData = QStandardItem("影视原声") self.yinshiyuanshenItemData.setFont(self.textFont) self.yinshiyuanshenItemData.setEditable(False) self.yinshiyuanshenItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.minyaoItemData = QStandardItem("民谣专辑") self.minyaoItemData.setFont(self.textFont) self.minyaoItemData.setEditable(False) self.minyaoItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.tianlaizhiyinItemData = QStandardItem("天籁之音") self.tianlaizhiyinItemData.setFont(self.textFont) self.tianlaizhiyinItemData.setEditable(False) self.tianlaizhiyinItemData.setData( QIcon(":/icon/Resources/icon/icon-gedanlist.svg"), Qt.DecorationRole) self.songsNameListModel = QStandardItemModel() self.songsNameListModel.appendRow(self.wubaiItemData) self.songsNameListModel.appendRow(self.zongguanxianItemData) self.songsNameListModel.appendRow(self.zhaoleiItemData) self.songsNameListModel.appendRow(self.xuweiItemData) self.songsNameListModel.appendRow(self.zhouhuajianItemData) self.songsNameListModel.appendRow(self.banderuiItemData) self.songsNameListModel.appendRow(self.yaogunItemData) self.songsNameListModel.appendRow(self.yinshiyuanshenItemData) self.songsNameListModel.appendRow(self.minyaoItemData) self.songsNameListModel.appendRow(self.tianlaizhiyinItemData) self.songsNameListView.setSpacing(2) self.songsNameListView.setModel(self.songsNameListModel) def __loadCollectionMusicListWidgetData(self): self.jingdianItemData = QStandardItem("经典老歌") self.textFont = QFont("微软雅黑", 11) self.jingdianItemData.setFont(self.textFont) self.jingdianItemData.setEditable(False) self.jingdianItemData.setData( QIcon(":/icon/Resources/icon/icon-collectionmusic.svg"), Qt.DecorationRole) self.qinyinyueItemData = QStandardItem("轻音乐系") self.qinyinyueItemData.setFont(self.textFont) self.qinyinyueItemData.setEditable(False) self.qinyinyueItemData.setData( QIcon(":/icon/Resources/icon/icon-collectionmusic.svg"), Qt.DecorationRole) self.jitaxilieItemData = QStandardItem("吉他系列") self.jitaxilieItemData.setFont(self.textFont) self.jitaxilieItemData.setEditable(False) self.jitaxilieItemData.setData( QIcon(":/icon/Resources/icon/icon-collectionmusic.svg"), Qt.DecorationRole) self.remengequItemData = QStandardItem("热门歌曲") self.remengequItemData.setFont(self.textFont) self.remengequItemData.setEditable(False) self.remengequItemData.setData( QIcon(":/icon/Resources/icon/icon-collectionmusic.svg"), Qt.DecorationRole) self.songsNameModel = QStandardItemModel() self.songsNameModel.appendRow(self.jingdianItemData) self.songsNameModel.appendRow(self.qinyinyueItemData) self.songsNameModel.appendRow(self.jitaxilieItemData) self.songsNameModel.appendRow(self.remengequItemData) self.localCollectionListView.setSpacing(2) self.localCollectionListView.setModel(self.songsNameModel)
class MainWindow(QFrame): def __init__(self): super().__init__() self._linkHistoryModel = ImageModel() self._linkHistoryView = QListView() self._autoTimer = QTimer() self._viewer = QLabel() self._play = QPushButton('START') self._stop = QPushButton('STOP') self._linkHistoryView.setFixedWidth(200) self._linkHistoryView.setModel(self._linkHistoryModel) self._autoTimer.setInterval(100) self._autoTimer.timeout.connect( lambda: AsyncRequestManager.downloadRequest(random=True)) self.setLayout(QHBoxLayout()) self._innerLayout = QVBoxLayout() self._buttonLayout = QHBoxLayout() self.layout().addWidget(self._linkHistoryView) self.layout().addLayout(self._innerLayout) self._innerLayout.addWidget(self._viewer, alignment=Qt.AlignCenter) self._innerLayout.addLayout(self._buttonLayout, alignment=Qt.AlignBottom) self._buttonLayout.addWidget(self._play) self._buttonLayout.addWidget(self._stop) self._linkHistoryView.selectionModel().selectionChanged.connect( self._updateViewer) AsyncRequestManager.responseReceived.connect(self._newImage) AsyncRequestManager.downloadRequest(random=True) self._play.clicked.connect(self._autoTimer.start) self._stop.clicked.connect(self._autoTimer.stop) def _updateViewer(self, selected, deselected): # Updates viewer index = selected.indexes()[0] response = index.data(role=ImageElement.response) if not index.data(role=ImageElement.image): pixmap = self._makeImage(response) self._linkHistoryModel.setData(index, pixmap, role=ImageElement.image) # if response.headers['Content-Type'] == 'image/gif': #TODO: Find out why QMovie crashes with start() # movie = index.data(role=ImageElement.image) # self._viewer.setMovie(movie) # movie.start() # else: self._viewer.setPixmap(index.data(role=ImageElement.image)) def _saveImage(self, response=None): # Saves the given response if any, else uses the image stored in the currently selected index if response: name, data = response.url.rsplit('/', 1)[-1], response.content else: item = self._linkHistoryView.selectionModel().selectedIndexes()[0] name = item.data(role=ImageElement.url).rsplit('/', 1)[-1] data = item.data(role=ImageElement.response).content saveDirectory = './images' if not os.path.exists(saveDirectory): os.makedirs(saveDirectory) saveDirectory += '/' + name with open(saveDirectory, 'wb') as f: f.write(data) def _makeImage(self, response, maxWidth=700, maxHeight=700): # Makes an image for the given response # if response.headers['Content-Type'] == 'image/gif': # byteArray = QByteArray(response.content) # buffer = QBuffer(byteArray) # buffer.open(QIODevice.ReadOnly) # mov = QMovie(buffer, b'GIF') # mov.setCacheMode(QMovie.CacheAll) # mov.setSpeed(100) # return mov pixmap = QPixmap() pixmap.loadFromData(response.content) width, height = pixmap.width(), pixmap.height() if width > height and width > maxWidth: dx = maxWidth / width width = min(width, maxWidth) height *= dx elif height > width and height > maxHeight: dy = maxHeight / height height = min(height, maxHeight) width *= dy elif height == width: width = height = maxWidth scaled = pixmap.scaled(width, height, transformMode=Qt.SmoothTransformation) return scaled def _makeItem(self, response): # Creates an image item from the given response item = QStandardItem() item.setData(response.url, role=ImageElement.url) item.setData(response, role=ImageElement.response) item.setData(self._makeImage(response), role=ImageElement.image) return item def _newImage(self, response): # Creates a new image item, adds it to the model, then updates the view item = self._makeItem(response) self._linkHistoryModel.appendRow(item) self._linkHistoryView.selectionModel().select( self._linkHistoryModel.indexFromItem(item), QItemSelectionModel.ClearAndSelect) return item def mousePressEvent(self, event): if event.button() == Qt.LeftButton: AsyncRequestManager.downloadRequest(random=True) elif event.button() == Qt.RightButton: self._saveImage() def keyReleaseEvent(self, event): if event.key() == Qt.Key_R: for response in randomImgurResponses(10000): # newImageItem = self._newImage(response) # QApplication.processEvents() self._saveImage(response)