Can't match two codes.
-
Core code:
#des #---------------
-- coding: utf-8 --
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(818, 469)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/Python.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
MainWindow.setStyleSheet("background-color:#b2b2b2;")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_3 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_3.setObjectName("gridLayout_3")
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.tabWidget.setStyleSheet("background-color: #b2b2b2;")
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.label_3 = QtWidgets.QLabel(self.tab)
self.label_3.setGeometry(QtCore.QRect(0, 0, 691, 383))
self.label_3.setStyleSheet("border-image: url(:/img/Снимок.PNG);")
self.label_3.setText("")
self.label_3.setObjectName("label_3")
self.pushButton_6 = QtWidgets.QPushButton(self.tab)
self.pushButton_6.setGeometry(QtCore.QRect(10, 10, 75, 23))
self.pushButton_6.setStyleSheet("QPushButton {\n"
" background-color: #54e346;\n"
"}\n"
"QPushButton:hover {\n"
" background-color: white;\n"
"}\n"
"QPushButton:pressed {\n"
" color: #626AB0;\n"
" background-color: #D5D4D4;\n"
"}")
self.pushButton_6.setObjectName("pushButton_6")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setToolTip("")
self.tab_2.setObjectName("tab_2")
self.gridLayout = QtWidgets.QGridLayout(self.tab_2)
self.gridLayout.setObjectName("gridLayout")
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.tab_2)
self.plainTextEdit.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ForbiddenCursor))
self.plainTextEdit.setObjectName("plainTextEdit")
self.gridLayout.addWidget(self.plainTextEdit, 0, 0, 5, 1)
self.pushButton_3 = QtWidgets.QPushButton(self.tab_2)
self.pushButton_3.setMinimumSize(QtCore.QSize(0, 31))
self.pushButton_3.setMaximumSize(QtCore.QSize(1369, 31))
self.pushButton_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_3.setStyleSheet("QPushButton {\n"
" background-color: #FFAA00;\n"
"}\n"
"QPushButton:hover {\n"
" background-color: white;\n"
"}\n"
"QPushButton:pressed {\n"
" color: #626AB0;\n"
" background-color: #D5D4D4;\n"
"}")
self.pushButton_3.setObjectName("pushButton_3")
self.gridLayout.addWidget(self.pushButton_3, 0, 1, 1, 1)
self.pushButton = QtWidgets.QPushButton(self.tab_2)
self.pushButton.setMinimumSize(QtCore.QSize(133, 31))
self.pushButton.setMaximumSize(QtCore.QSize(133, 31))
self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton.setStyleSheet("QPushButton {\n"
" background-color: #54e346;\n"
"}\n"
"QPushButton:hover {\n"
" background-color: white;\n"
"}\n"
"QPushButton:pressed {\n"
" color: #626AB0;\n"
" background-color: #D5D4D4;\n"
"}")
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 0, 2, 1, 1)
spacerItem = QtWidgets.QSpacerItem(75, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
self.tableWidget = QtWidgets.QTableWidget(self.tab_2)
self.tableWidget.setMinimumSize(QtCore.QSize(291, 0))
self.tableWidget.setMaximumSize(QtCore.QSize(1369, 16777215))
self.tableWidget.setStyleSheet("background-color: #b2b2b2;")
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
self.gridLayout.addWidget(self.tableWidget, 1, 1, 4, 1)
self.pushButton_2 = QtWidgets.QPushButton(self.tab_2)
self.pushButton_2.setMinimumSize(QtCore.QSize(0, 31))
self.pushButton_2.setMaximumSize(QtCore.QSize(133, 31))
self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_2.setStyleSheet("QPushButton {\n"
" background-color: #00b8ef;\n"
"}\n"
"QPushButton:hover {\n"
" background-color: white;\n"
"}\n"
"QPushButton:pressed {\n"
" color: #626AB0;\n"
" background-color: #D5D4D4;\n"
"}")
self.pushButton_2.setObjectName("pushButton_2")
self.gridLayout.addWidget(self.pushButton_2, 1, 2, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(54, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem1, 1, 3, 2, 1)
self.pushButton_5 = QtWidgets.QPushButton(self.tab_2)
self.pushButton_5.setMinimumSize(QtCore.QSize(0, 31))
self.pushButton_5.setMaximumSize(QtCore.QSize(133, 31))
self.pushButton_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_5.setStyleSheet("QPushButton {\n"
" background-color: #00b8ef;\n"
"}\n"
"QPushButton:hover {\n"
" background-color: white;\n"
"}\n"
"QPushButton:pressed {\n"
" color: #626AB0;\n"
" background-color: #D5D4D4;\n"
"}")
self.pushButton_5.setObjectName("pushButton_5")
self.gridLayout.addWidget(self.pushButton_5, 2, 2, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem2, 3, 2, 1, 1)
spacerItem3 = QtWidgets.QSpacerItem(153, 243, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem3, 4, 2, 1, 2)
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.gridLayout_2 = QtWidgets.QGridLayout(self.tab_3)
self.gridLayout_2.setObjectName("gridLayout_2")
self.label = QtWidgets.QLabel(self.tab_3)
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
self.label_2 = QtWidgets.QLabel(self.tab_3)
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.gridLayout_2.addWidget(self.label_2, 0, 2, 1, 1)
spacerItem4 = QtWidgets.QSpacerItem(285, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_2.addItem(spacerItem4, 0, 4, 1, 1)
self.comboBox = QtWidgets.QComboBox(self.tab_3)
self.comboBox.setMinimumSize(QtCore.QSize(161, 31))
self.comboBox.setObjectName("comboBox")
self.gridLayout_2.addWidget(self.comboBox, 1, 0, 1, 2)
self.comboBox_2 = QtWidgets.QComboBox(self.tab_3)
self.comboBox_2.setMinimumSize(QtCore.QSize(69, 31))
self.comboBox_2.setObjectName("comboBox_2")
self.gridLayout_2.addWidget(self.comboBox_2, 1, 2, 1, 1)
self.pushButton_4 = QtWidgets.QPushButton(self.tab_3)
self.pushButton_4.setMinimumSize(QtCore.QSize(133, 31))
self.pushButton_4.setMaximumSize(QtCore.QSize(133, 31))
self.pushButton_4.setStyleSheet("QPushButton {\n"
" background-color: #54e346;\n"
"}\n"
"QPushButton:hover {\n"
" background-color: white;\n"
"}\n"
"QPushButton:pressed {\n"
" color: #626AB0;\n"
" background-color: #D5D4D4;\n"
"}")
self.pushButton_4.setObjectName("pushButton_4")
self.gridLayout_2.addWidget(self.pushButton_4, 1, 3, 1, 1)
spacerItem5 = QtWidgets.QSpacerItem(285, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_2.addItem(spacerItem5, 1, 4, 1, 1)
spacerItem6 = QtWidgets.QSpacerItem(20, 297, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem6, 2, 1, 1, 1)
self.tabWidget.addTab(self.tab_3, "")
self.gridLayout_3.addWidget(self.tabWidget, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 818, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.action123 = QtWidgets.QAction(MainWindow)
self.action123.setObjectName("action123")
self.action123_2 = QtWidgets.QAction(MainWindow)
self.action123_2.setObjectName("action123_2")self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Администрирование")) self.pushButton_6.setText(_translate("MainWindow", "Add")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Мониторинг")) self.plainTextEdit.setToolTip(_translate("MainWindow", "Лог панель")) self.pushButton_3.setToolTip(_translate("MainWindow", "Изменение ip и данных")) self.pushButton_3.setText(_translate("MainWindow", "Настройка ip")) self.pushButton.setToolTip(_translate("MainWindow", "Пинг старт/стоп")) self.pushButton.setText(_translate("MainWindow", "Start")) item = self.tableWidget.verticalHeaderItem(0) item.setText(_translate("MainWindow", "1")) item = self.tableWidget.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "ip")) item = self.tableWidget.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Улица")) self.pushButton_2.setToolTip(_translate("MainWindow", "Отчистить поле лог панели")) self.pushButton_2.setText(_translate("MainWindow", "Clear")) self.pushButton_5.setToolTip(_translate("MainWindow", "Обновить таблицу")) self.pushButton_5.setText(_translate("MainWindow", "Updae")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Пинг ip")) self.label.setText(_translate("MainWindow", "ip аддреса")) self.label_2.setText(_translate("MainWindow", "Порты")) self.pushButton_4.setText(_translate("MainWindow", "Подключиться")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Администрирование")) self.action123.setText(_translate("MainWindow", "123")) self.action123_2.setText(_translate("MainWindow", "123"))
#import res_rc
#Main
#-----------------#!/usr/bin/env python 3
from PyQt5 import QtCore, QtGui, QtWidgets
from mysql.connector import connect, Error
from Main_setings_ip import *
from PyQt5.Qt import *
import subprocess
from des import *
import sqlite3
import random
import mouse
import time
import sys
import os#----------------------------------------------- 1 пинг
class WorkThread(QtCore.QThread):
threadSignal = QtCore.pyqtSignal(int, str, tuple)def __init__(self, dictIP): super().__init__() self.dictIP = dictIP def run(self): while True: for k, v in self.dictIP.items(): if v[2] == 2: response = subprocess.run(["ping", k, "-n", "1", "-w", "100"], shell=True,stdout=subprocess.PIPE) response = response.returncode self.msleep(1) self.threadSignal.emit(response, k, v)
#----------------------------------------------- 2 пинг
class WorkThread_1(QtCore.QThread):
threadSignal_1 = QtCore.pyqtSignal(int, str, tuple)def __init__(self, k, v): super().__init__() self.k_1 = k self.v_1 = v def run(self): response_1 = subprocess.run(["ping", self.k_1, "-n", "4", "-w", "100"], shell=True,stdout=subprocess.PIPE) response_1 = response_1.returncode self.msleep(1) self.threadSignal_1.emit(response_1, self.k_1, self.v_1)
#------------------------------------------------
Добавить метки
Метки
class Label(QLabel):
clicked = QtCore.pyqtSignal(str, str)def __init__( self, background=QColor("white"), parent=None ): super().__init__(parent) self._background = background self._change_stylesheet() self.setFixedSize(10, 10) @property def background(self): return self._background @background.setter def background(self, color): if self._background == color: return self._background = color self._change_stylesheet() def _change_stylesheet(self): qss = """QLabel {background-color:%s; border-radius: 5px; min-height: 10px; max-height: 10px; min-width: 10px; max-width: 10px; border-style: solid; border-color: black; border-width: 1px;} """ % ( self.background.name(), ) self.setStyleSheet(qss) def mousePressEvent(self, event): self.clicked.emit(self.objectName(), self.text()) qss = """QLabel {background-color:%s; border-radius: 5px; min-height: 10px; max-height: 10px; min-width: 10px; max-width: 10px; border-style: solid; border-color: white; border-width: 1px;} """ % ( self.background.name(), ) self.setStyleSheet(qss) def mouseReleaseEvent(self, event): qss = """QLabel {background-color:%s; border-radius: 5px; min-height: 10px; max-height: 10px; min-width: 10px; max-width: 10px; border-style: solid; border-color: black; border-width: 1px;} """ % ( self.background.name(), ) self.setStyleSheet(qss)
class MyWin(QtWidgets.QMainWindow):
def init(self, parent=None):
QtWidgets.QWidget.init(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)self.ui.pushButton.clicked.connect(self.startThread) self.ui.pushButton_2.clicked.connect(self.clear_plainText) #self.ui.pushButton_3.clicked.connect(self.setings_ip_window) #self.ui.pushButton_4.clicked.connect(self.connect_ip) self.ui.pushButton_5.clicked.connect(self.update_table) #self.ui.pushButton_6.clicked.connect() # <---- self.thread = None self.ui.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.ui.tableWidget.horizontalHeader().setMinimumSectionSize(0) self.ui.tableWidget.verticalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.ui.tableWidget.verticalHeader().setMinimumSectionSize(30) self.ui.plainTextEdit.setReadOnly(True) self.table_index = 0 self.row_count = 1 self.count = 0 self.dictMove = {} self.tab() self.thread_1_list = [] self.thread_1_num = 0 self.dictLbls = {} def coordinate(self, response, iP): _lbl = self.dictLbls.get(iP) if not _lbl: lab = Label(parent=self.ui.tab) lab.clicked.connect(self.onClickLabel) lab.setObjectName(f" {iP}") sqlite_connection = sqlite3.connect("News.db") cursor = sqlite_connection.cursor() sqlite_select_query = """SELECT Yi FROM ips WHERE ip = '{}'""".format(iP) cursor.execute(sqlite_select_query) records = cursor.fetchone() cursor.close() sqlite_connection.close() for row in records: lab.setText(f" {row}") lab.move(* self.dictMove[iP]) self.dictLbls[iP] = lab else: lab = _lbl if response == 1: if iP: lab.background = QColor("#fa7f72") else: lab.background = QColor("#ffaa00") else: lab.background = QColor("#54e346") lab.show() def onClickLabel(self, objName, text): self.ui.statusbar.showMessage(f'Вы кликнули: {objName}, {text}') def tab(self): # Подключение к БД sqlite_connection = sqlite3.connect("News.db") cursor = sqlite_connection.cursor() sqlite_select_query = """SELECT ip, Yi, x, y FROM ips""" cursor.execute(sqlite_select_query) records = cursor.fetchall() cursor.close() sqlite_connection.close() self.dictMove = { ip: (x, y) for ip, yi, x, y in records} # Перебор ip адресов for row, value in enumerate(records): self.ui.tableWidget.setRowCount(self.row_count) item = QtWidgets.QTableWidgetItem(str(value[0])) item_2 = QtWidgets.QTableWidgetItem(str(value[1])) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) item.setCheckState(QtCore.Qt.Checked) self.ui.tableWidget.setItem(row, 0, item) self.ui.tableWidget.setItem(row, 1, item_2) self.row_count += 1 def clear_plainText(self): self.ui.plainTextEdit.clear() def startThread(self): dictIP = {} [lbl.hide() for lbl in self.dictLbls.values()] self.dictLbls = {} for row in range(self.ui.tableWidget.rowCount()): item = self.ui.tableWidget.item(row, 0) item_2 = self.ui.tableWidget.item(row, 1) if item.checkState(): item.setBackground(QtGui.QColor("white")) item_2.setBackground(QtGui.QColor("white")) else: item.setBackground(QtGui.QColor("#b2b2b2")) item_2.setBackground(QtGui.QColor("#b2b2b2")) dictIP[item.text()] = (row, 0, item.checkState()) if self.thread is None: self.thread = WorkThread(dictIP) self.thread.threadSignal.connect(self.on_threadSignal) self.thread.threadSignal.connect(self.coordinate) self.thread.start() self.ui.pushButton.setText("Stop thread") style_stop = """QPushButton { background-color: #fa7f72; } QPushButton:hover { background-color: white; } QPushButton:pressed { color: #626AB0; background-color: #D5D4D4; }""" self.ui.pushButton.setStyleSheet(style_stop) else: self.thread.terminate() self.thread = None self.ui.pushButton.setText("Start thread") style_start = """QPushButton { background-color: #54e346; } QPushButton:hover { background-color: white; } QPushButton:pressed { color: #626AB0; background-color: #D5D4D4; }""" self.ui.pushButton.setStyleSheet(style_start)
#----------------------------------------------- условия
def on_threadSignal(self, response, k, v):
#print(response, k, v)
item = self.ui.tableWidget.item(v[0], v[1])
item_2 = self.ui.tableWidget.item(v[0], v[1]+1)
#item.setCheckState(QtCore.Qt.Checked)
if response == 1:
thread_1 = WorkThread_1(k, v)
self.thread_1_list.append(thread_1)
self.thread_1_list[self.thread_1_num].threadSignal_1.connect(self.on_threadSignal_1)
self.thread_1_list[self.thread_1_num].threadSignal_1.connect(self.coordinate)
self.thread_1_list[self.thread_1_num].start()
self.thread_1_num += 1
else:
item.setBackground(QtGui.QColor("#54e346"))
item_2.setBackground(QtGui.QColor("#54e346"))
#-----------------------------------------------def on_threadSignal_1(self, response_1, k_1, v_1): #print(response_1, k_1, v_1) item_1 = self.ui.tableWidget.item(v_1[0], v_1[1]) item_2 = self.ui.tableWidget.item(v_1[0], v_1[1]+1) #item_1.setCheckState(QtCore.Qt.Checked) if response_1: item_1.setBackground(QtGui.QColor("#fa7f72")) item_2.setBackground(QtGui.QColor("#fa7f72")) sqlite_connection = sqlite3.connect("News.db") cursor = sqlite_connection.cursor() sqlite_select_query = """SELECT * FROM ips WHERE ip = '{}'""".format(k_1) cursor.execute(sqlite_select_query) records = cursor.fetchall() cursor.close() sqlite_connection.close() for row in records: self.ui.plainTextEdit.appendPlainText(f'{k_1} | {row[1]} | {row[2]}\n{row[3]}\n') else: item_1.setBackground(QtGui.QColor("#C10020")) item_2.setBackground(QtGui.QColor("#C10020")) def update_table(self): sqlite_connection = sqlite3.connect("News.db") cursor = sqlite_connection.cursor() sqlite_select_query = """SELECT ip FROM ips""" records = cursor.fetchall() cursor.close() sqlite_connection.close() table_index = self.ui.tableWidget.rowCount() self.ui.tableWidget.insertRow(table_index) if len(records) == table_index: self.ui.tableWidget.setRowCount(table_index) elif len(records) > table_index: con = len(records) - table_index self.ui.tableWidget.clearContents() self.tab() self.ui.tableWidget.setRowCount(table_index + con) elif len(records) < table_index: con = table_index - len(records) self.ui.tableWidget.clearContents() self.tab() self.ui.tableWidget.setRowCount(table_index - con)
if name == 'main':
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
OBD to him -
import sqlite3
Добавление данных в таблицы
try:
connect = sqlite3.connect("News.db")
cursor = connect.cursor()
print("База данных подключена к SQLite")cursor.execute("""CREATE TABLE IF NOT EXISTS ips( id INTEGER, ip INTEGER, Gor TEXT, Yi TEXT, Location TEXT, x INTEGER, y INTEGER);""") connect.commit() records = [[f"{i}", f"192.168.{i}.9", "None", "None", "None", f"{i}", f"{i}"] for i in range(1, 11)] cursor.executemany("INSERT INTO ips VALUES (?, ?, ?, ?, ?, ?, ?)", records) connect.commit() print("Запись успешно добавлена") cursor.close()
except sqlite3.Error as error:
print("Ошибка при работе с SQLite", error)finally:
if connect:
connect.close()
print("Соединение с SQLite закрыто")
And this code with it needs to be matched--
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *class Label(QtWidgets.QLabel):
def init(self, parent):
super().init()
self.parent = parentdef mousePressEvent(self, event): print(f'def mousePressEvent(self, event): {event.pos()}') def mouseMoveEvent(self, event): if (event.buttons() == Qt.LeftButton): print(f'def mouseMoveEvent(self, event): {event.pos()}') # def mouseReleaseEvent(self, event): if event.button() == Qt.LeftButton and self.parent.flag: self._pos = event.pos() print(f'def mouseReleaseEvent(self, event): {event.pos()} <----') self.parent.label_pos.setText( f"<b style='color: #fff'>.</b> x:{self._pos.x()}, y:{self._pos.y()}") self.parent.label_pos.move(self._pos.x(), self._pos.y()) self.parent.label_pos.adjustSize() self.parent.flag = False
class MainWindow(QtWidgets.QWidget):
def init(self):
super().init()self.flag = False self.label = Label(self) self.label.setFixedSize(570, 316) self.label.setPixmap(QtGui.QPixmap("image1.png")) self.label_pos = QLabel(self.label) self.pushButton = QtWidgets.QPushButton('Add', self.label) self.pushButton.move(10, 10) self.pushButton.clicked.connect(self.func_connect) grid = QtWidgets.QGridLayout(self) grid.addWidget(self.label) def func_connect(self): self.flag = True self.pushButton.setEnabled(False)
if name == "main":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
That's the code that needs to be matched when you press the button.
self.ui.pushButton_6
-
Main code:
- Add the import of windows that need to be combined. I called this module. q1349966_2.py:
from q1349966_2 import MainWindow as Window_2 # +++
- Connect the signal to the elephant:
self.ui.pushButton_6.clicked.connect(self.pushButton_6_clicked) # <---
- Add the slot:
def pushButton_6_clicked(self):
self.window_2 = Window_2()
self.window_2.show()
- Everything.
q1349966_2.py
import sys from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.Qt import *
class Label(QtWidgets.QLabel):
def init(self, parent):
super().init()
self.parent = parentdef mousePressEvent(self, event): print(f'def mousePressEvent(self, event): {event.pos()}') def mouseMoveEvent(self, event): if (event.buttons() == Qt.LeftButton): print(f'def mouseMoveEvent(self, event): {event.pos()}') # def mouseReleaseEvent(self, event): if event.button() == Qt.LeftButton and self.parent.flag: self._pos = event.pos() print(f'def mouseReleaseEvent(self, event): {event.pos()} <----') self.parent.label_pos.setText( f"<b style='color: #fff'>.</b> x:{self._pos.x()}, y:{self._pos.y()}") self.parent.label_pos.move(self._pos.x(), self._pos.y()) self.parent.label_pos.adjustSize() self.parent.flag = False
class MainWindow(QtWidgets.QWidget):
def init(self):
super().init()self.flag = False self.label = Label(self) self.label.setFixedSize(570, 316) self.label.setPixmap(QtGui.QPixmap("image1.png")) self.label_pos = QLabel(self.label) self.pushButton = QtWidgets.QPushButton('Add', self.label) self.pushButton.move(10, 10) self.pushButton.clicked.connect(self.func_connect) grid = QtWidgets.QGridLayout(self) grid.addWidget(self.label) def func_connect(self): self.flag = True self.pushButton.setEnabled(False)
if name == "main":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())