pyqt5 - TableWidGet

 Содержание шоу данных с использованием pyqt5 данных Excel на рабочий стол, и выбрано

от PyQt5 импорта QtCore, QtGui, QtWidgets
 из PyQt5.QtGui импорта QIcon
 из PyQt5.QtWidgets импорта *
 из PyQt5.QtCore импорта *
 импорт панд , как П.Д.
 импорта NumPy как нп 


класса Ui_MainWindow (QMainWindow): 

    четкости  __init__ (Я): 
        супер (QtWidgets. QMainWindow, самостоятельно). __init__ () 
        self.setupUi (сам) 
        self.retranslateUi (сам) 


    Защита setupUi (я, MainWindow): 
        MainWindow.setObjectName ( "MainWindow " ) 
        MainWindow.resize ( 666, 488 ) 
        self.centralWidget = QtWidgets.QWidget (MainWindow) 
        self.centralWidget.setObjectName ( " centralWidget " ) 
        self.retranslateUi (MainWindow) 

        self.tableWidget = QtWidgets.QTableWidget (self.centralWidget) 
        самостоятельно .tableWidget.setGeometry (QtCore.QRect (0, 60, 813, 371 )) 
        self.tableWidget.setObjectName ( " tableWidget " ) 
        self.tableWidget.setColumnCount (0)  
        self.tableWidget.setRowCount (0)
        self.tableWidget.setStyleSheet ( " Выбор-фон-цвет: розовый " ) 
        self.tableWidget.setEditTriggers (QAbstractItemView.NoEditTriggers) 
        self.tableWidget.setSelectionBehavior (QTableWidget.SelectRows) 

        self.tableWidget.raise_ () 

        # 设置图标


        self.pushButton = QtWidgets.QPushButton (self.centralWidget) 
        self.pushButton.setGeometry (QtCore.QRect ( 90, 20, 75, 23 )) 
        self.pushButton.setObjectName ( " Кнопочный " ) 
        self.pushButton.setText ( " 打开" )
        MainWindow.setCentralWidget (self.centralWidget) 
        QtCore.QMetaObject.connectSlotsByName (MainWindow) 

        self.pushButton.clicked.connect (self.openfile) 
        self.pushButton.clicked.connect (self.creat_table_show) 

        # 确定 
        self.okButton = QtWidgets.QPushButton ( self.centralWidget) 
        self.okButton.setGeometry (QtCore.QRect ( 180, 20, 75, 23 )) 
        self.okButton.setObjectName ( " OK для подтверждения " ) 
        self.okButton.setText ( " 确定" ) 
        MainWindow.setCentralWidget (self.centralWidget ) 
        QtCore.QMetaObject.connectSlotsByName (MainWindow) 

        self.okButton.clicked.connect (self.get_select) 


    защиту retranslateUi (самости, MainWindow):
        _translate = QtCore.QCoreApplication.translate 
        MainWindow.setWindowTitle (_translate ( " MainWindow " , " 测试数据" )) 
        MainWindow.setWindowIcon (QIcon ( " ./head.jpg " ))
         # MainWindow.show () 


    Защиту get_select (Я):
         # печать (self.tableWidget.columnCount ()) #返回列数
        # печать (self.tableWidget.rowCount ()) #返回行数

        колонные = self.tableWidget.columnCount () 
        row_list = множество ()
         для ввода в self.tableWidget.selectionModel () выбор () индексы ():.. 
            row_list.add (i.row ()) 
        # печати (row_list) 
        select_data = []
         для строки в row_list: 
            row_data = [self.tableWidget.item (строка, р) .text () для р в диапазоне (колонный)] 
            select_data.append (row_data) 
        печати (select_data) 


    Защита OpenFile (сам): 

        # 获取路径 
        openfile_name = QFileDialog.getOpenFileName (я, ' 选择文件' , '' , ' файлы Excel (*. XLSX, * .xls) ') 

        # Печать (openfile_name) 
        глобальное path_openfile_name 
        path_openfile_name = openfile_name [0] 


    Защиту creat_table_show (Я):
         # 读取表格,转换表格
        если Len (path_openfile_name)> 0: 
            input_table = pd.read_excel (path_openfile_name)
             # печать (1, input_table) 
            input_table_rows =  input_table.shape [0]
            input_table_colunms = input_table.shape [1 ]
             # печать (2, input_table_rows) 
            # печать (3, input_table_colunms) 
            input_table_header =input_table.columns.values.tolist ()
             # Печать (input_table_header) 

            # таблица чтения, таблица преобразования, список строк при условии tablewidget головы 

            self.tableWidget.setColumnCount (input_table_colunms) 
            self.tableWidget.setRowCount (input_table_rows) 
            self.tableWidget.setHorizontalHeaderLabels ( input_table_header) 

            # к первой строке в списке при условии , tablewidget 

            # перемещения элемента каждой таблицы, добавляя к tablewidget 
            для ввода в диапазоне (input_table_rows): 
                input_table_rows_values 
                input_table_rows_values_array == Input_table.iloc [[I]]
                 # печать (input_table_rows_values) np.array (input_table_rows_values) 
                input_table_rows_values_list = input_table_rows_values_array.tolist () [0]
                  # печать (input_table_rows_values_list) 
                для J в диапазоне (input_table_colunms): 
                    input_table_items_list = input_table_rows_values_list [J]
                     # печать (input_table_items_list) 
                    # печати (тип (input_table_items_list)) 

                    # 将遍历的元素添加到tablewidget中并显示

                    input_table_items = ул (input_table_items_list) 
                    newItem = QTableWidgetItem (input_table_items) 
                    newItem.setTextAlignment (Qt.AlignHCenter | Qt.AlignVCenter) 
                    self.tableWidget.setItem (I, J, newItem) 

        # перемещения стола для каждого элемента, добавляя к tablewidget в 
        остальное : 
            self.centralWidget .Show () 

ЕСЛИ  __name__ == " __main__ " :
     Импорт СИС 
    App = QtWidgets.QApplication (The sys.argv) 
    MainWindow = QtWidgets.QMainWindow () 
    UI = Ui_MainWindow ()
    ui.setupUi (MainWindow) 
    MainWindow.show () 
    sys.exit (app.exec_ ())

 

рекомендация

отwww.cnblogs.com/feifeifeisir/p/11592622.html