def download_table_to_json(qtable: QtWidgets.QTableWidget, dest) -> None: result = {} for row in range(qtable.rowCount()): row_header = qtable.verticalHeaderItem(row).text() result[row_header] = {} for column in range(qtable.columnCount()): column_header = qtable.horizontalHeaderItem(column).text() result[row_header][column_header] = qtable.item(row, column).text() with open(dest, 'w') as f: json.dump(result, f)
class Ui_MainWindow(object): def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(514, 693) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.gridLayout = QGridLayout(self.centralwidget) self.gridLayout.setObjectName(u"gridLayout") self.pushButton = QPushButton(self.centralwidget) self.pushButton.setObjectName(u"pushButton") self.pushButton.setCursor(QCursor(Qt.PointingHandCursor)) self.gridLayout.addWidget(self.pushButton, 0, 1, 1, 1) self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setObjectName(u"tabWidget") self.tabWidget.setStyleSheet(u"") self.tab = QWidget() self.tab.setObjectName(u"tab") self.gridLayout_2 = QGridLayout(self.tab) self.gridLayout_2.setObjectName(u"gridLayout_2") self.tableWidget = QTableWidget(self.tab) if (self.tableWidget.columnCount() < 3): self.tableWidget.setColumnCount(3) __qtablewidgetitem = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1) __qtablewidgetitem2 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, __qtablewidgetitem2) self.tableWidget.setObjectName(u"tableWidget") self.tableWidget.setStyleSheet(u"") self.tableWidget.horizontalHeader().setCascadingSectionResizes(False) self.tableWidget.verticalHeader().setVisible(False) self.gridLayout_2.addWidget(self.tableWidget, 0, 0, 1, 1) self.tabWidget.addTab(self.tab, "") self.tab_2 = QWidget() self.tab_2.setObjectName(u"tab_2") self.gridLayout_3 = QGridLayout(self.tab_2) self.gridLayout_3.setObjectName(u"gridLayout_3") self.tableWidget_2 = QTableWidget(self.tab_2) self.tableWidget_2.setObjectName(u"tableWidget_2") self.gridLayout_3.addWidget(self.tableWidget_2, 0, 0, 1, 1) self.tabWidget.addTab(self.tab_2, "") self.gridLayout.addWidget(self.tabWidget, 1, 0, 1, 2) self.lineEdit = QLineEdit(self.centralwidget) self.lineEdit.setObjectName(u"lineEdit") self.lineEdit.setReadOnly(True) self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 514, 22)) MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(0) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QCoreApplication.translate("MainWindow", u"HyperV_controller", None)) self.pushButton.setText( QCoreApplication.translate("MainWindow", u"\u5237\u65b0", None)) ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0) ___qtablewidgetitem.setText( QCoreApplication.translate("MainWindow", u"\u540d\u79f0", None)) ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(1) ___qtablewidgetitem1.setText( QCoreApplication.translate("MainWindow", u"\u72b6\u6001", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab), QCoreApplication.translate("MainWindow", u"\u865a\u62df\u673a", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("MainWindow", u"\u529f\u80fd", None))
class Ui_Dialog(object): def setupUi(self, Dialog): if not Dialog.objectName(): Dialog.setObjectName(u"Dialog") Dialog.resize(1136, 733) self.formLayout = QFormLayout(Dialog) self.formLayout.setObjectName(u"formLayout") self.tableWidget = QTableWidget(Dialog) if (self.tableWidget.columnCount() < 4): self.tableWidget.setColumnCount(4) __qtablewidgetitem = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1) __qtablewidgetitem2 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, __qtablewidgetitem2) __qtablewidgetitem3 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(3, __qtablewidgetitem3) self.tableWidget.setObjectName(u"tableWidget") self.tableWidget.setMinimumSize(QSize(0, 450)) self.tableWidget.verticalHeader().setVisible(False) self.formLayout.setWidget(1, QFormLayout.SpanningRole, self.tableWidget) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.textEdit = QTextEdit(Dialog) self.textEdit.setObjectName(u"textEdit") self.textEdit.setReadOnly(True) self.horizontalLayout.addWidget(self.textEdit) self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName(u"verticalLayout") self.pushButton = QPushButton(Dialog) self.pushButton.setObjectName(u"pushButton") sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) self.pushButton.setSizePolicy(sizePolicy) self.pushButton.setCursor(QCursor(Qt.PointingHandCursor)) self.verticalLayout.addWidget(self.pushButton) self.pushButton_2 = QPushButton(Dialog) self.pushButton_2.setObjectName(u"pushButton_2") sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth()) self.pushButton_2.setSizePolicy(sizePolicy) self.pushButton_2.setCursor(QCursor(Qt.PointingHandCursor)) self.verticalLayout.addWidget(self.pushButton_2) self.horizontalLayout.addLayout(self.verticalLayout) self.formLayout.setLayout(0, QFormLayout.SpanningRole, self.horizontalLayout) self.buttonBox = QDialogButtonBox(Dialog) self.buttonBox.setObjectName(u"buttonBox") self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Ok) self.formLayout.setWidget(2, QFormLayout.FieldRole, self.buttonBox) self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QMetaObject.connectSlotsByName(Dialog) # setupUi def retranslateUi(self, Dialog): Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"popup_hyperv", None)) ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0) ___qtablewidgetitem.setText(QCoreApplication.translate("Dialog", u"\u529f\u80fd", None)); ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(1) ___qtablewidgetitem1.setText(QCoreApplication.translate("Dialog", u"\u8bf4\u660e", None)); ___qtablewidgetitem2 = self.tableWidget.horizontalHeaderItem(2) ___qtablewidgetitem2.setText(QCoreApplication.translate("Dialog", u"\u5f53\u524d\u503c", None)); ___qtablewidgetitem3 = self.tableWidget.horizontalHeaderItem(3) ___qtablewidgetitem3.setText(QCoreApplication.translate("Dialog", u"\u4fee\u6539", None)); self.pushButton.setText(QCoreApplication.translate("Dialog", u"\u5237\u65b0", None)) self.pushButton_2.setText(QCoreApplication.translate("Dialog", u"\u4fee\u6539", None))