Не получается совместить 2 кода
Основной код:
#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_())
БД к нему -
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 закрыто")
И вот этот код с ним нужно как-то совместить -
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class Label(QtWidgets.QLabel):
def __init__(self, parent):
super().__init__()
self.parent = parent
def 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_())
Что-бы тот код который нужно совместить работал при нажатии на кнопку self.ui.pushButton_6
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
В основном коде:
- добавьте импорт окна, которое нужно как-то совместить. Я этот модуль назвал q1349966_2.py:
from q1349966_2 import MainWindow as Window_2 # +++
- подключить сигнал к слоту:
self.ui.pushButton_6.clicked.connect(self.pushButton_6_clicked) # <---
- добавить слот:
def pushButton_6_clicked(self):
self.window_2 = Window_2()
self.window_2.show()
- все.
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 = parent
def 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_())
