相关疑难解决方法(0)

从Pandas数据框填充QTableView的最快方法

我对PyQt很新,我正在努力填充QTableView控件.

我的代码如下:

def data_frame_to_ui(self, data_frame):
        """
        Displays a pandas data frame into the GUI
        """
        list_model = QtGui.QStandardItemModel()
        i = 0
        for val in data_frame.columns:
            # for the list model
            if i > 0:
                item = QtGui.QStandardItem(val)
                #item.setCheckable(True)
                item.setEditable(False)
                list_model.appendRow(item)
            i += 1
        self.ui.profilesListView.setModel(list_model)

        # for the table model
        table_model = QtGui.QStandardItemModel()

        # set table headers
        table_model.setColumnCount(data_frame.columns.size)
        table_model.setHorizontalHeaderLabels(data_frame.columns.tolist())
        self.ui.profileTableView.horizontalHeader().setStretchLastSection(True)

        # fill table model data
        for row_idx in range(10): #len(data_frame.values)
            row = list()
            for col_idx in range(data_frame.columns.size):
                val = QtGui.QStandardItem(str(data_frame.values[row_idx][col_idx]))
                row.append(val) …
Run Code Online (Sandbox Code Playgroud)

python pyqt4 pandas

15
推荐指数
7
解决办法
2万
查看次数

PyQt5:当您单击QHeaderView的标题时,如何对QTableView进行排序?

当我单击QHeaderView的标题时,我想对QTableView进行排序。我在互联网上找到了几个这样的代码示例:在pyqt5中对QTableView进行排序, 但对我而言不起作用。我也看过Summerfield的Rapid Gui编程书,但我还是可以找到可行的方法。

在这个快速示例中,如何按名称或年龄对表格进行排序?

这是我的代码:

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import pandas as pd
import operator

# This class was generated from the Qt Creator
class Ui_tableView_ex(object):
    def setupUi(self, tableView_ex):
        tableView_ex.setObjectName("tableView_ex")
        tableView_ex.resize(800, 600)
        self.centralwidget = QWidget(tableView_ex)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.myTable = QTableView(self.centralwidget)
        self.myTable.setObjectName("monTablo")
        self.gridLayout.addWidget(self.myTable, 0, 0, 1, 1)
        tableView_ex.setCentralWidget(self.centralwidget)

        self.retranslateUi(tableView_ex)
        QMetaObject.connectSlotsByName(tableView_ex)

    def retranslateUi(self, tableView_ex):
        _translate = QCoreApplication.translate
        tableView_ex.setWindowTitle(_translate("tableView_ex", "MainWindow"))


class TableTest(QMainWindow, Ui_tableView_ex):
    def __init__(self, parent=None):
        super(TableTest, self).__init__(parent)
        self.setupUi(self)

        self.model = …
Run Code Online (Sandbox Code Playgroud)

python sorting qtableview qheaderview pyqt5

4
推荐指数
1
解决办法
3821
查看次数

标签 统计

python ×2

pandas ×1

pyqt4 ×1

pyqt5 ×1

qheaderview ×1

qtableview ×1

sorting ×1