У меня есть интерфейс с двумя вкладками: в первой я прошу пользователя ввести параметры, а во второй я хочу напечатать следующий QTableWidget.
Итак, в основном на первой вкладке у меня есть QPushButton, который я назвал процессом, и обычно, когда я нажимаю на него, я хочу отправить информацию на вторую вкладку.
Прямо сейчас я просто попытался показать новое окно с QTableWidget и хорошими параметрами:
class Parameters(QWidget):
def __init__(self):
super(Parameters, self).__init__()
self.matrixsize = QLineEdit()
bouton = QPushButton("define matrix_size")
bouton.clicked.connect(self.appui_bouton)
self.halfmatrix = QCheckBox()
self.halfmatrix.toggled.connect(self.on_checked)
self.define_matrix_size = QGroupBox('Define Parameters')
layout = QGridLayout()
layout.addWidget(self.matrixsize, 0, 0, 1, 1, )
layout.addWidget(bouton, 0, 1, 1, 1)
layout.addWidget(QLabel('select half size mode'
), 1, 0, 1, 1)
layout.addWidget(self.halfmatrix, 1, 1, 1, 1)
self.define_matrix_size.setLayout(layout)
process = QPushButton('process')
process.clicked.connect(self.process)
self.matrix = QTableWidget()
self.layout = QGridLayout()
self.layout.addWidget(self.define_matrix_size)
self.layout.addWidget(matrix)
self.layout.addWidget(process)
self.setLayout(self.layout)
def matrix_size(self):
if self.matrixsize.text() == "":
return 0
else:
return int(self.matrixsize.text())
def appui_bouton(self):
taille = self.matrixsize()
self.matrix.deleteLater()
if self.halfmatrix.isChecked():
self.on_checked()
else:
self.matrix = QTableWidget()
self.matrix.setColumnCount(taille)
self.matrix.setRowCount(taille)
self.layout.addWidget(self.matrix)
self.update()
self.setLayout(self.layout)
def keyPressEvent(self, qKeyEvent):
print(qKeyEvent.key())
if qKeyEvent.key() == Qt.Key_Return or qKeyEvent.key() == Qt.Key_Enter:
self.appui_bouton()
else:
super().keyPressEvent(qKeyEvent)
def on_checked(self):
taille = self.matrixsize()
if taille == 0:
pass
else:
if self.halfmatrix.isChecked():
size = int(taille / 2)
self.matrix.deleteLater()
self.matrix = QTableWidget()
self.matrix.setColumnCount(size)
self.matrix.setRowCount(size)
self.layout.addWidget(self.matrix, 3, 0, 20, 4)
self.update()
self.setLayout(self.layout)
else:
self.appui_bouton()
def process (self):
layout = QHBoxLayout()
test = self.matrix
test.setLayout(layout)
test.show()
Итак, чтобы уточнить, что я сказал: у меня есть окно, в котором вы получаете некоторые параметры (размер,...), когда вы выбираете эти параметры, скажем, вы берете matrixsize==5, затем таблица 5x5 добавляется к окно. Эту таблицу можно после этого заполнить другими параметрами (я вырезал их по коду) по системе перетаскивания. Итак, теперь, когда у меня есть построенная таблица, я хочу иметь возможность открыть новое окно только с таблицей, нажав кнопку «процесс». Поэтому мне не нужна динамическая таблица, мне просто нужна таблица, которая сохраняет одно и то же свойство (например, если матрица имеет функцию Dragonly, то новая матрица должна иметь то же самое). Я хочу сохранить всю информацию, содержащуюся в ячейках
Я надеюсь, что я достаточно ясен, потому что я впервые задаю вопросы (после того, как много раз читал некоторые ответы, конечно ^^) спасибо за ваш ответ и совет!
process
таблица должна создавать строки и столбцы на основе размера матрицы? - person musicamante   schedule 12.08.2020appui_bouton
иon_checked
), и нет никаких следов того, как на самом деле применяется размер таблицы. Пожалуйста, отредактируйте вопрос и сделайте его код воспроизводимым, включая все необходимые функции для установки размера таблицы. - person musicamante   schedule 12.08.2020