Как добавить n-ное количество строк в таблицу QtTableWidget?
Есть код, внутри него используется два окна,
в первом выводится таблица и несколько других объектов, размер таблицы изначально не полностью известен (известно лишь количество столбцов), количество строк задаётся из второго окна, после нажатия на кнопку "Ок", по нажатию на эту кнопку выполняется метод save() (изменяет глобальные переменные нужные для работы программы).
Нужно чтобы по нажатию кнопки активировался другой класс, чтобы он считал значение одной из глобальных переменных = n ** 0.5 и автоматически обновил состояние таблицы (появилось нужное количество строк).
Пробовал использовать appendRow и insertRow. При некоторых вариациях кода программа зависает и вылетает, при оставшихся просто не чего не происходит.
Спасибо за помощь!
код первого окна содержащего таблицу:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_nml(object):
def __init__(self):
super(Ui_nml, self).__init__()
self.start = self.setupUi(self)
def setupUi(self, nml):
nml.setObjectName("nml")
nml.setEnabled(True)
nml.resize(524, 634)
self.centralwidget = QtWidgets.QWidget(nml)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(10, 10, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setAutoRepeatDelay(500)
self.pushButton.setAutoRepeatInterval(1500)
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(10, 80, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_2.setFont(font)
self.pushButton_2.setAutoRepeatDelay(500)
self.pushButton_2.setAutoRepeatInterval(1500)
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(10, 220, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_3.setFont(font)
self.pushButton_3.setAutoRepeatDelay(500)
self.pushButton_3.setAutoRepeatInterval(1500)
self.pushButton_3.setObjectName("pushButton_3")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(185, 0, 111, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(295, 0, 91, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(385, 0, 111, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(187, 460, 100, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_4.setFont(font)
self.pushButton_4.setAutoRepeatDelay(500)
self.pushButton_4.setAutoRepeatInterval(1500)
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(290, 460, 100, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_5.setFont(font)
self.pushButton_5.setAutoRepeatDelay(500)
self.pushButton_5.setAutoRepeatInterval(1500)
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_6.setGeometry(QtCore.QRect(393, 460, 100, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_6.setFont(font)
self.pushButton_6.setAutoRepeatDelay(500)
self.pushButton_6.setAutoRepeatInterval(1500)
self.pushButton_6.setObjectName("pushButton_6")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(10, 560, 221, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.listWidget_4 = QtWidgets.QListWidget(self.centralwidget)
self.listWidget_4.setGeometry(QtCore.QRect(240, 560, 253, 41))
self.listWidget_4.setObjectName("listWidget_4")
self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_7.setGeometry(QtCore.QRect(10, 150, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_7.setFont(font)
self.pushButton_7.setAutoRepeatDelay(500)
self.pushButton_7.setAutoRepeatInterval(1500)
self.pushButton_7.setObjectName("pushButton_7")
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(190, 30, 319, 421))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(3)
self.tableWidget.setRowCount(1)
self.twvh = self.tableWidget.verticalHeader()
self.twvh.setVisible(False)
self.twhh = self.tableWidget.horizontalHeader()
self.twhh.setVisible(False)
self.tableWidget.setHorizontalHeaderLabels(["","",""])
nml.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(nml)
self.menubar.setGeometry(QtCore.QRect(0, 0, 567, 21))
self.menubar.setObjectName("menubar")
nml.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(nml)
self.statusbar.setObjectName("statusbar")
nml.setStatusBar(self.statusbar)
self.retranslateUi(nml)
QtCore.QMetaObject.connectSlotsByName(nml)
def retranslateUi(self, nml):
_translate = QtCore.QCoreApplication.translate
nml.setWindowTitle(_translate("nml", "Программа минимизации логической "
"формулы методом Куайна-Мак-Класски "
"с использованием метода Петрика"))
self.pushButton.setText(_translate("nml", "Открыть"))
self.pushButton_2.setText(_translate("nml", "Создать"))
self.pushButton_3.setText(_translate("nml", "Выход"))
self.label.setText(_translate("nml", " № строки"))
self.label_2.setText(_translate("nml", " Набор"))
self.label_3.setText(_translate("nml", " Значение"))
self.pushButton_4.setText(_translate("nml", "Сохранить"))
self.pushButton_5.setText(_translate("nml", "Сброс"))
self.pushButton_6.setText(_translate("nml", "Расчёт"))
self.label_4.setText(_translate("nml", " Результат минимизации"))
self.pushButton_7.setText(_translate("nml", "Параметры\n минимизации"))
код второго окна предназначенного для задания глобальных переменных:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_nml_two(object):
def __init__(self):
super(Ui_nml_two, self).__init__()
self.start = self.setupUi(self)
def setupUi(self, nml):
nml.setObjectName("MainWindow")
nml.resize(472, 399)
self.centralwidget = QtWidgets.QWidget(nml)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(120, 0, 261, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 40, 331, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(10, 90, 331, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(350, 60, 113, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(350, 110, 113, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(10, 140, 241, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(10, 190, 41, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(10, 220, 41, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(10, 250, 41, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(50, 210, 21, 21))
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_4.setGeometry(QtCore.QRect(50, 240, 21, 21))
self.lineEdit_4.setObjectName("lineEdit_4")
self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_5.setGeometry(QtCore.QRect(50, 270, 21, 21))
self.lineEdit_5.setObjectName("lineEdit_5")
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setGeometry(QtCore.QRect(10, 280, 171, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(170, 350, 75, 23))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setAutoRepeatDelay(500)
self.pushButton.setAutoRepeatInterval(1500)
self.pushButton.setText('Ок')
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(260, 350, 75, 23))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_2.setFont(font)
self.pushButton_2.setAutoRepeatDelay(500)
self.pushButton_2.setAutoRepeatInterval(1500)
self.pushButton_2.setText('Отмена')
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(180, 290, 70, 51))
self.checkBox.setText("")
self.checkBox.setIconSize(QtCore.QSize(50, 3))
self.checkBox.setCheckable(True)
self.checkBox.setChecked(False)
self.checkBox.setAutoRepeatDelay(300)
self.checkBox.setObjectName("checkBox")
nml.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(nml)
self.menubar.setGeometry(QtCore.QRect(0, 0, 472, 21))
self.menubar.setObjectName("menubar")
nml.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(nml)
self.statusbar.setObjectName("statusbar")
nml.setStatusBar(self.statusbar)
self.retranslateUi(nml)
QtCore.QMetaObject.connectSlotsByName(nml)
def retranslateUi(self, nml):
_translate = QtCore.QCoreApplication.translate
nml.setWindowTitle(_translate("MainWindow", "Параметры минимизации"))
self.label.setText(_translate("MainWindow", "Параметры минимизации"))
self.label_2.setText(_translate("MainWindow", "Колличество входных переменных :"))
self.label_3.setText(_translate("MainWindow", "Колличество выходных переменных :"))
self.label_4.setText(_translate("MainWindow", "Разрядность операндов :"))
self.label_5.setText(_translate("MainWindow", "А ="))
self.label_6.setText(_translate("MainWindow", "В ="))
self.label_7.setText(_translate("MainWindow", "С ="))
self.label_8.setText(_translate("MainWindow", "Учитывать знак :"))
основной код:
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from functools import partial
from WindowOne import Ui_nml
from WindowTwo import Ui_nml_two
class mywindow(QtWidgets.QMainWindow, Ui_nml):
def __init__(self):
super(mywindow, self).__init__()
self.pushButton_7.clicked.connect(partial(self.second_window_start))
self.pushButton_3.clicked.connect(self.close)
def second_window_start(self):
self.sw = second_window()
self.sw.show()
class second_window(QtWidgets.QMainWindow, Ui_nml_two):
def __init__(self):
super(second_window, self).__init__()
self.pushButton.clicked.connect(partial(self.save))
self.pushButton_2.clicked.connect(partial(self.close))
def save(self):
# начало переопределения глобальных переменных
global p_C
global p_B
global p_A
global p_output
global p_input
global minus
p_input = self.lineEdit.text()
p_output = self.lineEdit_2.text()
p_A = self.lineEdit_3.text()
p_B = self.lineEdit_4.text()
p_C = self.lineEdit_5.text()
minus = self.checkBox.isChecked() # проверка состояния флажка
# конец переопределения глобальных переменных
table()
self.close()
class table(QtWidgets.QMainWindow, Ui_nml):
def table(self):
global p_input
self.tableWidget.insertRow(p_input)
if __name__ == '__main__':
minus = True
p_input = 0
p_output = 0
p_A = 0
p_B = 0
p_C = 0
app = QtWidgets.QApplication([])
application = mywindow()
application.show()
sys.exit(app.exec())
через appendRow:
class table(QtWidgets.QMainWindow, Ui_nml):
def table(self):
global p_input
self.twar = QtGui.QStandardItem(self.tableWidget)
self.twar.appendRow(p_input)
Конкретно хочу сделать так что бы после нажатия кнопки "Ок" во втором окне и переопределения переменных обновилось количество строк с изначального значения равного единице до значения 2 ** p_input, здесь это пока не начиналось делаться, ибо нужно было хотя бы разобраться как сделать это динамическое добавление, прошу прощения за возможно не правильное оформление.
Ответы (1 шт):
void QTableWidget::setRowCount(int
rows)Устанавливает количество строк в модели этой таблицы в
rows.
Если это значение меньше, чем rowCount(), данные в ненужных строках отбрасываются.
import sys
from functools import partial
from PyQt5 import QtCore, QtGui, QtWidgets
#from WindowOne import Ui_nml
class Ui_nml(object):
def __init__(self):
super(Ui_nml, self).__init__()
self.start = self.setupUi(self)
def setupUi(self, nml):
nml.setObjectName("nml")
nml.setEnabled(True)
nml.resize(524, 634)
self.centralwidget = QtWidgets.QWidget(nml)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(10, 10, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setAutoRepeatDelay(500)
self.pushButton.setAutoRepeatInterval(1500)
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(10, 80, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_2.setFont(font)
self.pushButton_2.setAutoRepeatDelay(500)
self.pushButton_2.setAutoRepeatInterval(1500)
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(10, 220, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_3.setFont(font)
self.pushButton_3.setAutoRepeatDelay(500)
self.pushButton_3.setAutoRepeatInterval(1500)
self.pushButton_3.setObjectName("pushButton_3")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(185, 0, 111, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(295, 0, 91, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(385, 0, 111, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(187, 460, 100, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_4.setFont(font)
self.pushButton_4.setAutoRepeatDelay(500)
self.pushButton_4.setAutoRepeatInterval(1500)
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(290, 460, 100, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_5.setFont(font)
self.pushButton_5.setAutoRepeatDelay(500)
self.pushButton_5.setAutoRepeatInterval(1500)
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_6.setGeometry(QtCore.QRect(393, 460, 100, 51))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_6.setFont(font)
self.pushButton_6.setAutoRepeatDelay(500)
self.pushButton_6.setAutoRepeatInterval(1500)
self.pushButton_6.setObjectName("pushButton_6")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(10, 560, 221, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.listWidget_4 = QtWidgets.QListWidget(self.centralwidget)
self.listWidget_4.setGeometry(QtCore.QRect(240, 560, 253, 41))
self.listWidget_4.setObjectName("listWidget_4")
self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_7.setGeometry(QtCore.QRect(10, 150, 131, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_7.setFont(font)
self.pushButton_7.setAutoRepeatDelay(500)
self.pushButton_7.setAutoRepeatInterval(1500)
self.pushButton_7.setObjectName("pushButton_7")
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(190, 30, 319, 421))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(3)
self.tableWidget.setRowCount(1)
self.twvh = self.tableWidget.verticalHeader()
self.twvh.setVisible(False)
self.twhh = self.tableWidget.horizontalHeader()
self.twhh.setVisible(False)
self.tableWidget.setHorizontalHeaderLabels(["","",""])
nml.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(nml)
self.menubar.setGeometry(QtCore.QRect(0, 0, 567, 21))
self.menubar.setObjectName("menubar")
nml.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(nml)
self.statusbar.setObjectName("statusbar")
nml.setStatusBar(self.statusbar)
self.retranslateUi(nml)
QtCore.QMetaObject.connectSlotsByName(nml)
def retranslateUi(self, nml):
_translate = QtCore.QCoreApplication.translate
nml.setWindowTitle(_translate("nml", "Программа минимизации логической "
"формулы методом Куайна-Мак-Класски "
"с использованием метода Петрика"))
self.pushButton.setText(_translate("nml", "Открыть"))
self.pushButton_2.setText(_translate("nml", "Создать"))
self.pushButton_3.setText(_translate("nml", "Выход"))
self.label.setText(_translate("nml", " № строки"))
self.label_2.setText(_translate("nml", " Набор"))
self.label_3.setText(_translate("nml", " Значение"))
self.pushButton_4.setText(_translate("nml", "Сохранить"))
self.pushButton_5.setText(_translate("nml", "Сброс"))
self.pushButton_6.setText(_translate("nml", "Расчёт"))
self.label_4.setText(_translate("nml", " Результат минимизации"))
self.pushButton_7.setText(_translate("nml", "Параметры\n минимизации"))
#from WindowTwo import Ui_nml_two
class Ui_nml_two(object):
def __init__(self):
super(Ui_nml_two, self).__init__()
self.start = self.setupUi(self)
def setupUi(self, nml):
nml.setObjectName("MainWindow")
nml.resize(472, 399)
self.centralwidget = QtWidgets.QWidget(nml)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(120, 0, 261, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 40, 331, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(10, 90, 331, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(350, 60, 113, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(350, 110, 113, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(10, 140, 241, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(10, 190, 41, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(10, 220, 41, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(10, 250, 41, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(50, 210, 21, 21))
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_4.setGeometry(QtCore.QRect(50, 240, 21, 21))
self.lineEdit_4.setObjectName("lineEdit_4")
self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_5.setGeometry(QtCore.QRect(50, 270, 21, 21))
self.lineEdit_5.setObjectName("lineEdit_5")
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setGeometry(QtCore.QRect(10, 280, 171, 61))
font = QtGui.QFont()
font.setPointSize(14)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(170, 350, 75, 23))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setAutoRepeatDelay(500)
self.pushButton.setAutoRepeatInterval(1500)
self.pushButton.setText('Ок')
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(260, 350, 75, 23))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_2.setFont(font)
self.pushButton_2.setAutoRepeatDelay(500)
self.pushButton_2.setAutoRepeatInterval(1500)
self.pushButton_2.setText('Отмена')
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(180, 290, 70, 51))
self.checkBox.setText("")
self.checkBox.setIconSize(QtCore.QSize(50, 3))
self.checkBox.setCheckable(True)
self.checkBox.setChecked(False)
self.checkBox.setAutoRepeatDelay(300)
self.checkBox.setObjectName("checkBox")
nml.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(nml)
self.menubar.setGeometry(QtCore.QRect(0, 0, 472, 21))
self.menubar.setObjectName("menubar")
nml.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(nml)
self.statusbar.setObjectName("statusbar")
nml.setStatusBar(self.statusbar)
self.retranslateUi(nml)
QtCore.QMetaObject.connectSlotsByName(nml)
def retranslateUi(self, nml):
_translate = QtCore.QCoreApplication.translate
nml.setWindowTitle(_translate("MainWindow", "Параметры минимизации"))
self.label.setText(_translate("MainWindow", "Параметры минимизации"))
self.label_2.setText(_translate("MainWindow", "Колличество входных переменных :"))
self.label_3.setText(_translate("MainWindow", "Колличество выходных переменных :"))
self.label_4.setText(_translate("MainWindow", "Разрядность операндов :"))
self.label_5.setText(_translate("MainWindow", "А ="))
self.label_6.setText(_translate("MainWindow", "В ="))
self.label_7.setText(_translate("MainWindow", "С ="))
self.label_8.setText(_translate("MainWindow", "Учитывать знак :"))
class SecondWindow(QtWidgets.QMainWindow, Ui_nml_two):
# -------------------> vvvvvvvvvvv <---------------------------------
def __init__(self, parent=None):
super(SecondWindow, self).__init__(parent)
# ---------------------------------------> ^^^^^^ <------------------
self.parent = parent # !!! +++
# self.pushButton.clicked.connect(partial(self.save))
self.pushButton.clicked.connect(self.save)
self.pushButton_2.clicked.connect(partial(self.close))
def save(self):
try:
# --------> vvvvvvvvvvv <------------------------------------------------ # !!! +++
self.parent.p_input = int(self.lineEdit.text())
self.parent.p_output = int(self.lineEdit_2.text())
self.parent.p_A = int(self.lineEdit_3.text())
self.parent.p_B = int(self.lineEdit_4.text())
self.parent.p_C = int(self.lineEdit_5.text())
self.parent.minus = self.checkBox.isChecked() # проверка состояния флажка
except Exception as e:
msg = QtWidgets.QMessageBox.warning(
self,
'Внимание',
f'Заполните правильно поля ввода. \n{e}'
)
return
rows = 2 ** self.parent.p_input # +++
self.parent.tableWidget.setRowCount(rows) # !!! +++
print(f'Строк в таблице: {self.parent.tableWidget.rowCount()}') #
self.close()
class MyWindow(QtWidgets.QMainWindow, Ui_nml):
def __init__(self):
super(MyWindow, self).__init__()
# !!! +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
self.minus = True
self.p_input = 0
self.p_output = 0
self.p_A = 0
self.p_B = 0
self.p_C = 0
# !!! +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self.pushButton_7.clicked.connect(self.second_window_start)
self.pushButton_3.clicked.connect(self.close)
def second_window_start(self):
# ---------------------------> vvvv <--------------------------------
self.sw = SecondWindow(self)
self.sw.show()
if __name__ == '__main__':
app = QtWidgets.QApplication([])
application = MyWindow()
application.show()
sys.exit(app.exec())

