栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PySide + QTableView示例

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PySide + QTableView示例

找到一个:

http://www.daniweb.com/software-development/python/pre/447834/applying-
pysides-qabstracttablemodel

''' ps_QAbstractTableModel_solvents.pyuse PySide's QTableView and QAbstractTableModel for tabular datasort columns by clicking on the header titlehere applied to solvents commonly used in ChemistryPySide is the official LGPL-licensed version of PyQTtested with PySide112 and Python27/Python33 by vegaseat  15feb2013'''import operatorfrom PySide.QtCore import *from PySide.QtGui import *class MyWindow(QWidget):    def __init__(self, data_list, header, *args):        QWidget.__init__(self, *args)        # setGeometry(x_pos, y_pos, width, height)        self.setGeometry(300, 200, 570, 450)        self.setWindowTitle("Click on column title to sort")        table_model = MyTableModel(self, data_list, header)        table_view = QTableView()        table_view.setModel(table_model)        # set font        font = QFont("Courier New", 14)        table_view.setFont(font)        # set column width to fit contents (set font first!)        table_view.resizeColumnsToContents()        # enable sorting        table_view.setSortingEnabled(True)        layout = QVBoxLayout(self)        layout.addWidget(table_view)        self.setLayout(layout)class MyTableModel(QAbstractTableModel):    def __init__(self, parent, mylist, header, *args):        QAbstractTableModel.__init__(self, parent, *args)        self.mylist = mylist        self.header = header    def rowCount(self, parent):        return len(self.mylist)    def columnCount(self, parent):        return len(self.mylist[0])    def data(self, index, role):        if not index.isValid(): return None        elif role != Qt.DisplayRole: return None        return self.mylist[index.row()][index.column()]    def headerData(self, col, orientation, role):        if orientation == Qt.Horizontal and role == Qt.DisplayRole: return self.header[col]        return None    def sort(self, col, order):        """sort table by given column number col"""        self.emit(SIGNAL("layoutaboutToBeChanged()"))        self.mylist = sorted(self.mylist, key=operator.itemgetter(col))        if order == Qt.DescendingOrder: self.mylist.reverse()        self.emit(SIGNAL("layoutChanged()"))# the solvent data ...header = ['Solvent Name', ' BP (deg C)', ' MP (deg C)', ' Density (g/ml)']# use numbers for numeric data to sort properlydata_list = [('ACETIC ACID', 117.9, 16.7, 1.049),('ACETIC ANHYDRIDE', 140.1, -73.1, 1.087),('ACETONE', 56.3, -94.7, 0.791),('ACETONITRILE', 81.6, -43.8, 0.786),('ANISOLE', 154.2, -37.0, 0.995),('BENZYL ALCOHOL', 205.4, -15.3, 1.045),('BENZYL BENZOATE', 323.5, 19.4, 1.112),('BUTYL ALCOHOL NORMAL', 117.7, -88.6, 0.81),('BUTYL ALCOHOL SEC', 99.6, -114.7, 0.805),('BUTYL ALCOHOL TERTIARY', 82.2, 25.5, 0.786),('CHLOROBENZENE', 131.7, -45.6, 1.111),('CYCLOHEXANE', 80.7, 6.6, 0.779),('CYCLOHEXANOL', 161.1, 25.1, 0.971),('CYCLOHEXANONE', 155.2, -47.0, 0.947),('DICHLOROETHANE 1 2', 83.5, -35.7, 1.246),('DICHLOROMETHANE', 39.8, -95.1, 1.325),('DIETHYL ETHER', 34.5, -116.2, 0.715),('DIMETHYLACETAMIDE', 166.1, -20.0, 0.937),('DIMETHYLFORMAMIDE', 153.3, -60.4, 0.944),('DIMETHYLSULFOXIDE', 189.4, 18.5, 1.102),('DIOXANE 1 4', 101.3, 11.8, 1.034),('DIPHENYL ETHER', 258.3, 26.9, 1.066),('ETHYL ACETATE', 77.1, -83.9, 0.902),('ETHYL ALCOHOL', 78.3, -114.1, 0.789),('ETHYL DIGLYME', 188.2, -45.0, 0.906),('ETHYLENE CARBONATE', 248.3, 36.4, 1.321),('ETHYLENE GLYCOL', 197.3, -13.2, 1.114),('FORMIC ACID', 100.6, 8.3, 1.22),('HEPTANE', 98.4, -90.6, 0.684),('HEXAMETHYL PHOSPHORAMIDE', 233.2, 7.2, 1.027),('HEXANE', 68.7, -95.3, 0.659),('ISO OCTANE', 99.2, -107.4, 0.692),('ISOPROPYL ACETATE', 88.6, -73.4, 0.872),('ISOPROPYL ALCOHOL', 82.3, -88.0, 0.785),('METHYL ALCOHOL', 64.7, -97.7, 0.791),('METHYL ETHYLKETONE', 79.6, -86.7, 0.805),('METHYL ISOBUTYL KETONE', 116.5, -84.0, 0.798),('METHYL T-BUTYL ETHER', 55.5, -10.0, 0.74),('METHYLPYRROLIDINONE N', 203.2, -23.5, 1.027),('MORPHOLINE', 128.9, -3.1, 1.0),('NITROBENZENE', 210.8, 5.7, 1.208),('NITROMETHANE', 101.2, -28.5, 1.131),('PENTANE', 36.1, ' -129.7', 0.626),('PHENOL', 181.8, 40.9, 1.066),('PROPANENITRILE', 97.1, -92.8, 0.782),('PROPIonIC ACID', 141.1, -20.7, 0.993),('PROPIONITRILE', 97.4, -92.8, 0.782),('PROPYLENE GLYCOL', 187.6, -60.1, 1.04),('PYRIDINE', 115.4, -41.6, 0.978),('SULFOLANE', 287.3, 28.5, 1.262),('TETRAHYDROFURAN', 66.2, -108.5, 0.887),('TOLUENE', 110.6, -94.9, 0.867),('TRIETHYL PHOSPHATE', 215.4, -56.4, 1.072),('TRIETHYLAMINE', 89.5, -114.7, 0.726),('TRIFLUOROACETIC ACID', 71.8, -15.3, 1.489),('WATER', 100.0, 0.0, 1.0),('XYLENES', 139.1, -47.8, 0.86)]app = QApplication([])win = MyWindow(data_list, header)win.show()app.exec_()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号