Movement of PySide6
-
I have a code that moves the window, but how does this code connect to another window that comes after the first? My code is here. https://gist.github.com/tR1nZ/4715ccfd33027addf5e7cf00934df63e
-
No change. code sgenerated Qt Designer, Nowhere!
Create another class that inherits from the relevant view and use the established class to fill it.And I've already written to you about your question. https://ru.stackoverflow.com/questions/1344035 ♪ Why don't you answer my comments in it?
Your full annex with the forms is very large, so my response will not contain the forms contained in
class Ui_MainWindow(object):
and parts of the form contained inclass Ui_Form(object):
♪import sys import os import subprocess import requests from PyQt5 import QtCore, QtGui, QtWidgets # !!! ваши импорты для PySide6 from PyQt5.Qt import * # !!! ваши импорты для PySide6
class Ui_MainWindow(object):
def setupUi(self, MainWindow):# ... сюда вставьте <----<----<----<----<----
!!! TaskWidget
class TaskWidget(QWidget):
''' Signal для PySide6 !!!!!!!!!!!!
itemDeleted = Signal(QListWidgetItem)
itemEdited = Signal(QListWidgetItem)
itemStarted = Signal(QListWidgetItem)
itemStopped = Signal(QListWidgetItem)
'''установите свое ^^^^^^
уберите мое vvvvvvvvvv
pyqtSignal для PyQt5 !!!!!!!!!!!!
itemDeleted = pyqtSignal(QListWidgetItem) itemEdited = pyqtSignal(QListWidgetItem) itemStarted = pyqtSignal(QListWidgetItem) itemStopped = pyqtSignal(QListWidgetItem) def __init__(self, item, data, *args, **kwargs): super(TaskWidget, self).__init__(*args, **kwargs) self._item = item self.num_row = QLabel(self) self.num_row.setObjectName(u"num_row") self.num_row.setGeometry(QRect(9, 9, 24, 24)) self.num_row.setAlignment(Qt.AlignCenter) self.site_row = QLabel(self) self.site_row.setObjectName(u"site_row") self.site_row.setGeometry(QRect(50, 9, 91, 24)) self.product_row = QLabel(self) self.product_row.setObjectName(u"product_row") self.product_row.setGeometry(QRect(150, 9, 161, 24)) self.size_row = QLabel(self) self.size_row.setObjectName(u"size_row") self.size_row.setGeometry(QRect(330, 9, 61, 24)) self.profile_row = QLabel(self) self.profile_row.setObjectName(u"profile_row") self.profile_row.setGeometry(QRect(405, 9, 81, 24)) self.proxy_row = QLabel(self) self.proxy_row.setObjectName(u"proxy_row") self.proxy_row.setGeometry(QRect(500, 9, 60, 24)) self.status_row = QLabel(self) self.status_row.setObjectName(u"status_row") self.status_row.setGeometry(QRect(580, 9, 191, 24)) self.status_row.setAlignment(Qt.AlignCenter) self.start_row = QPushButton(self) self.start_row.setObjectName(u"start_row") self.start_row.setGeometry(QRect(781, 6, 26, 26)) icon1 = QIcon() icon1.addFile(u"img/start.png", QSize(), QIcon.Normal, QIcon.Off) self.start_row.setIcon(icon1) self.start_row.setIconSize(QSize(26, 26)) self.stop_row = QPushButton(self) self.stop_row.setObjectName(u"stop_row") self.stop_row.setGeometry(QRect(820, 6, 26, 26)) icon2 = QIcon() icon2.addFile(u"img/stop.png", QSize(), QIcon.Normal, QIcon.Off) self.stop_row.setIcon(icon2) self.stop_row.setIconSize(QSize(26, 26)) self.edit_row = QPushButton(self) self.edit_row.setObjectName(u"edit_row") self.edit_row.setGeometry(QRect(860, 6, 26, 26)) icon3 = QIcon() icon3.addFile(u"img/pen.png", QSize(), QIcon.Normal, QIcon.Off) self.edit_row.setIcon(icon3) self.edit_row.setIconSize(QSize(26, 26)) self.delete_row = QPushButton(self) self.delete_row.setObjectName(u"delete_row") self.delete_row.setGeometry(QRect(900, 6, 26, 26)) self.start_row.clicked.connect(self.startItem) self.stop_row.clicked.connect(self.stopItem) self.delete_row.clicked.connect(self.deleteItem) self.edit_row.clicked.connect(self.editItem) icon4 = QIcon() icon4.addFile(u"img/trash.png", QSize(), QIcon.Normal, QIcon.Off) self.delete_row.setIcon(icon4) self.delete_row.setIconSize(QSize(26, 26)) self.num_row.setText(QCoreApplication.translate("MainWindow", data['num'], None)) self.site_row.setText(QCoreApplication.translate("MainWindow", data['site'], None)) self.product_row.setText(QCoreApplication.translate("MainWindow", data['product'], None)) self.size_row.setText(QCoreApplication.translate("MainWindow", data['size'], None)) self.profile_row.setText(QCoreApplication.translate("MainWindow", data['profile'], None)) self.proxy_row.setText(QCoreApplication.translate("MainWindow", data['proxy'], None)) self.status_row.setText(QCoreApplication.translate("MainWindow", data['status'], None)) self.status_row.setStyleSheet(f"color: {data['color']}") def deleteItem(self): self.itemDeleted.emit(self._item) def editItem(self): self.itemEdited.emit(self._item) def startItem(self): self.itemStarted.emit(self._item) def stopItem(self): self.itemStopped.emit(self._item)
class Ui_Form(object):
# ... сюда вставьте <----<----<----<----<----<----<---- def retranslateUi(self, Form): Form.setWindowTitle(QCoreApplication.translate("Form", u"Centurion AIO", None)) self.left_back.setText("") self.right_back.setText("") self.enter_your_label.setText(QCoreApplication.translate("Form", u"Enter your license key:", None)) self.response_text.setText(QCoreApplication.translate("Form", u"", None)) self.input_key.setPlaceholderText(QCoreApplication.translate("Form", u"license key", None)) try: with open('upls\key.txt', 'r') as key: key1 = key.readlines()[0] except: pass else: self.input_key.setText(QCoreApplication.translate("Form", str(key1), None)) self.loginButton.setText(QCoreApplication.translate("Form", u"Log In", None)) self.exit_button.setText(QCoreApplication.translate("Form", u"X", None))
class MoveStartWindow(QtWidgets.QWidget, Ui_Form):
def init(self):
super().init()
self.setupUi(self)
self.setWindowFlags(Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground)self.old_pos = None self.exit_button.clicked.connect(lambda: self.close()) self.loginButton.clicked.connect(self.check_status) def check_status(self): print(self.input_key.text()) self.main_window() def get_id(self): current_machine_id = str(subprocess.check_output('wmic csproduct get uuid'), 'utf-8').split('\n')[1].strip() return current_machine_id def main_window(self): headers = { 'Content-type': 'application/json' } data = { "key": self.input_key.text(), "device": self.get_id(), "id": "604a002dd52644b19441776d", } r = requests.post( 'https://api.cactusweb.io/api/v1/devices', headers=headers, json=data ) if r.status_code == 400: self.response_text.setStyleSheet(u"color: rgb(255, 0, 0);") self.response_text.setText(QCoreApplication.translate("Form", u"Access Denied", None)) elif r.status_code == 202: self.response_text.setStyleSheet(u"color: rgb(0, 170, 0);") self.response_text.setText(QCoreApplication.translate("Form", u"Logged succsefully", None)) os.system('cls') elif r.status_code == 200: self.response_text.setStyleSheet(u"color: rgb(0, 170, 0);") self.response_text.setText(QCoreApplication.translate("Form", u"Logged succsefully", None)) # Create the Qt Application self.main_form = QMainWindow() # Create and show the form license_key_not_found = False try: with open('upls\key.txt', 'r') as lickey: lickey1 = lickey.readlines() license_key = lickey1[0] if license_key != self.input_key.text(): write_key = open('upls\key.txt', 'w') write_key.write(self.input_key.text()) write_key.close() except: license_key_not_found = True write_key = open('upls\key.txt', 'w') write_key.write(self.input_key.text()) write_key.close()
self.mainWindow = Ui_MainWindow()
self.mainWindow.setupUi(self.main_form)
self.main_form.show()
self.mainWindow = MainWindow() # +++ self.mainWindow.show() # +++ self.hide() # +++ os.system('cls') def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.old_pos = event.pos() def mouseReleaseEvent(self, event): if event.button() == Qt.LeftButton: self.old_pos = None def mouseMoveEvent(self, event): if not self.old_pos: return delta = event.pos() - self.old_pos self.move(self.pos() + delta)
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): # !!!
def init(self):
super().init()
self.setupUi(self) # !!!self.tabs_widget.setCurrentIndex(1)
??? self.pos = self.pos()
self.setWindowFlags(Qt.FramelessWindowHint) self.setAttribute(Qt.WA_TranslucentBackground) self.exit_button.clicked.connect(lambda: self.close()) self.hide_button.clicked.connect(lambda: self.showMinimized())
self.app_core(self)
self.app_core()
+++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
self.old_pos = None # вызывается при нажатии кнопки мыши def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.old_pos = event.pos() # вызывается при отпускании кнопки мыши def mouseReleaseEvent(self, event): if event.button() == Qt.LeftButton: self.old_pos = None # вызывается всякий раз, когда мышь перемещается def mouseMoveEvent(self, event): if not self.old_pos: return delta = event.pos() - self.old_pos self.move(self.pos() + delta)
+++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
def app_core(self):
??? self.pos = self.pos()
self.tasks_num = 0 self.set_containers() self.update_comboboxes('proxy') self.update_comboboxes('profiles') self.task_creator.clicked.connect(lambda: self.tabs_widget.setCurrentIndex(0)) self.tasks.clicked.connect(lambda: self.tabs_widget.setCurrentIndex(1)) self.billing.clicked.connect(self.show_profiles_tab) self.proxies.clicked.connect(self.show_proxy_tab) self.settings.clicked.connect(self.show_settings_tab) self.save_settings_button.clicked.connect(self.save_settings) self.create_proxy_button.clicked.connect(self.add_proxy) self.create_profile_button.clicked.connect(self.add_profile) # self.test_webhook_button.clicked.connect(self.send_test_webhook) self.add_taskBtn.clicked.connect(self.add_task) self.enter_site_combo.currentTextChanged.connect(self.check_combobox) def start_task(self, item): for i in self.tasks_container: if self.tasks_container[i]['item'] == item: data = self.tasks_container[i] break if data['site'] == 'Aliexpress': self.active_tasks.append((item, Aliexpress(data, self.settings_container))) elif data['site'] == 'Basketshop': self.active_tasks.append((item, Basketshop(data, self.settings_container))) elif data['site'] == 'Svyaznoy': self.active_tasks.append((item, Svyaznoy(data, self.settings_container))) elif data['site'] == 'Sneakerhead': self.active_tasks.append((item, Sneakerhead(data, self.settings_container))) elif data['site'] == 'Brandshop': self.active_tasks.append((item, Brandshop(data, self.settings_container))) elif data['site'] == 'Wildberries': self.active_tasks.append((item, WbBot(data, self.settings_container))) elif data['site'] == 'BrandshopAccGen': self.active_tasks.append((item, BrandshopAccGen(data, self.settings_container))) elif data['site'] == 'BeliefMoscow': self.active_tasks.append((item, BeliefMoscow(data, self.settings_container))) elif data['site'] == 'EldoradoFormReg': print(1) # self.active_tasks.append((item, EldoradoFormReg(data, self.settings_container))) else: print(data['site']) self.active_tasks[-1][1].send_status.connect(lambda info: self.set_status(info, i)) self.active_tasks[-1][1].stop_task.connect(self.stop_task) self.active_tasks[-1][1].setTerminationEnabled(True) self.active_tasks[-1][1].start() def set_status(self, info: dict, i): data = self.tasks_container[i] data['status'] = info['status'] data['color'] = info['color'] self.change_data(i, data) def stop_task(self, item): try: self.active_tasks[-1][1].stop() except: pass for i in self.tasks_container: if self.tasks_container[i]['item'] == item: break for j in range(len(self.active_tasks)): if self.active_tasks[j] == item: break self.active_tasks.pop(j) info = {'status': 'Stop', 'color': 'red'} self.set_status(info, i) def add_proxy(self): data = dict() self.proxies_container[self.proxy_input.toPlainText()] = data self.update_comboboxes('proxy') self.create_proxy_indicator.show() def check_combobox(self): data = dict() data['site'] = self.enter_site_combo.currentText() if data['site'] == "Aliexpress": data['cookie'] = self.enter_cookie_combo.hide() data['cookie'] = self.enter_cookie_label.hide() data['size'] = self.enter_size_combo.hide() data['size'] = self.enter_size_label.hide() data['test'] = self.enter_test_input.hide() data['test'] = self.enter_test_label.hide() self.size_frame.setMinimumSize(QSize(0, 0)) self.size_frame.setMaximumSize(QSize(0, 0)) self.cookie_frame.setMinimumSize(QSize(0, 0)) self.cookie_frame.setMaximumSize(QSize(0, 0)) elif data['site'] == "Basketshop": data['test'] = self.enter_test_input.hide() data['test'] = self.enter_test_label.hide() data['cookie'] = self.enter_cookie_combo.show() data['cookie'] = self.enter_cookie_label.show() data['size'] = self.enter_size_combo.show() data['size'] = self.enter_size_label.show() self.size_frame.setMinimumSize(QSize(944, 70)) self.size_frame.setMaximumSize(QSize(944, 70)) self.cookie_frame.setMinimumSize(QSize(944, 60)) self.cookie_frame.setMaximumSize(QSize(944, 60)) elif data['site'] == "Svyaznoy": data['test'] = self.test_frame.show() data['test'] = self.enter_test_input.show() data['test'] = self.enter_test_label.show() def add_profile(self): data = dict() if self.profile_name_input.text() != '': self.profiles_container[self.profile_name_input.text()] = data self.update_comboboxes('profiles') if self.skip1_name_input.text() != '': self.skip_container[self.skip1_name_input.text()] = data self.update_comboboxes('skips') if self.cookie1_name_input.text() != '': self.cookie_container[self.cookie1_name_input.text()] = data self.update_comboboxes('cookie') self.create_profile_indicator.show() """def send_test_webhook(self): embed1 = Webhook(self.settings_container['webhook'], color=0x6dff1f) embed1.set_footer(text='Centurion AIO ©', ts=False) embed1.post()""" def save_settings(self): self.settings_container['webhook'] = self.webhook_input.text() self.settings_container['2captcha'] = self.captcha_input.text() self.settings_container['onlinesim'] = self.onlinesim_input.text() f = open('upl\settings.txt', 'w') f.close() with open('upl\settings.txt', 'a') as e: e.write(self.settings_container['webhook'] + '\n' + self.settings_container['2captcha'] + '\n' + self.settings_container['onlinesim']) self.save_indicator.show() def add_task(self): data = dict() self.tasks_num += 1 data['num'] = str(self.tasks_num) data['site'] = self.enter_site_combo.currentText() data['profile'] = self.enter_profile_combo.currentText() data['product'] = self.enter_product_input.text() data['size'] = self.enter_size_combo.text() data['skip'] = self.enter_skip_combo.currentText() data['cookie'] = self.enter_cookie_combo.currentText() data['test'] = self.enter_test_input.text() if data['size'] == '': data['size'] = 'No Size' data['proxy'] = self.proxy_input.toPlainText() data['keyword'] = self.enter_keyword_input.text() item = QListWidgetItem(self.listWidget) item.setSizeHint(QSize(944, 40)) data['item'] = item print(data['item']) data['color'] = 'red' data['status'] = 'Stop'
!!! TaskWidget
widget = TaskWidget(item, data) widget.itemDeleted.connect(self.deleteTask) widget.itemEdited.connect(self.editTask) widget.itemStarted.connect(self.start_task) widget.itemStopped.connect(self.stop_task) # Binding delete signal self.listWidget.setItemWidget(item, widget) self.tasks_container[self.tasks_num] = data del data def deleteTask(self, item): self.tasks_num -= 1 row = self.listWidget.indexFromItem(item).row() item = self.listWidget.takeItem(row) self.listWidget.removeItemWidget(item) del item def editTask(self, item): for t in self.tasks_container: if self.tasks_container[t]['item'] == item: break dialog = Ui_Dialog(self.tasks_container[t], self.profiles_container, self.proxies_container, self.skip_container, self.cookie_container) dialog.itemEdit.connect(lambda data: self.change_data(t, data)) center = QScreen.availableGeometry(QApplication.primaryScreen()).center() dialog.move(center.x() - 400, center.y() - 275) if dialog.exec() == QDialog.Accepted: print('edited') else: print('cancelled') def change_data(self, i, data): row = self.listWidget.indexFromItem(data['item']).row() item = self.listWidget.takeItem(row) self.listWidget.removeItemWidget(item) self.listWidget.insertItem(row, data['item'])
!!! TaskWidget
widget = TaskWidget(data['item'], data) widget.itemDeleted.connect(self.deleteTask) widget.itemEdited.connect(self.editTask) widget.itemStarted.connect(self.start_task) widget.itemStopped.connect(self.stop_task) self.listWidget.setItemWidget(data['item'], widget) self.tasks_container[i] = data def update_comboboxes(self, tab): if tab == 'profiles': names = list(self.profiles_container.keys()) count = self.enter_profile_combo.count() for i in range(count): self.enter_profile_combo.removeItem(0) for i in range(len(names)): self.enter_profile_combo.addItem(names[i]) elif tab == 'skips': names = list(self.skip_container.keys()) count = self.enter_skip_combo.count() for i in range(count): self.enter_skip_combo.removeItem(0) for i in range(len(names)): self.enter_skip_combo.addItem(names[i]) elif tab == 'cookie': names = list(self.cookie_container.keys()) count = self.enter_cookie_combo.count() for i in range(count): self.enter_cookie_combo.removeItem(0) for i in range(len(names)): self.enter_cookie_combo.addItem(names[i]) def set_containers(self): self.tasks_container = dict() self.profiles_container = {'No accounts': {}} self.proxies_container = {'Local': {}} self.skip_container = {'No Skip': {}} self.cookie_container = {'No Cookie': {}} self.settings_container = dict() self.active_tasks = list() self.save_settings() # FIXME: добавить загрузку данных из реестра def show_settings_tab(self): self.save_indicator.hide() self.tabs_widget.setCurrentIndex(3) def show_proxy_tab(self): self.create_proxy_indicator.hide() self.tabs_widget.setCurrentIndex(4) def show_profiles_tab(self): self.create_profile_indicator.hide() self.tabs_widget.setCurrentIndex(2)
if name == "main":
app = QApplication(sys.argv)
w = MoveStartWindow() # !!!
w.show() # !!!
sys.exit(app.exec())