亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: pyqt 界面QTreeView 鼠標(biāo)應(yīng)用 [打印本頁(yè)]

作者: tyguaike    時(shí)間: 2013-12-30 16:56
標(biāo)題: pyqt 界面QTreeView 鼠標(biāo)應(yīng)用

我想加入雙擊一條數(shù)據(jù)彈出一個(gè)窗口,在窗口中顯示數(shù)據(jù)的索引

*************************************************************

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This is only needed for Python v2 but is harmless for Python v3.
import sip
sip.setapi('QVariant', 2)

from PyQt4 import QtCore, QtGui
import codebase

SUBJECT, SENDER, DATE, KAIJIANGLI = range(4)


              
# Work around the fact that QSortFilterProxyModel always filters datetime
# values in QtCore.Qt.ISODate formeat, but the tree views display using
# QtCore.Qt.DefaultLocaleShortDate format.
class SortFilterProxyModel(QtGui.QSortFilterProxyModel):
    def filterAcceptsRow(self, sourceRow, sourceParent):
        # Do we filter for the date column?
        if self.filterKeyColumn() == DATE:
            # Fetch datetime value.
            index = self.sourceModel().index(sourceRow, DATE, sourceParent)
            data = self.sourceModel().data(index)

            # Return, if regExp match in displayed format.
            return (self.filterRegExp().indexIn(data.toString(QtCore.Qt.DefaultLocaleShortDate)) >= 0)

        # Not our business.
        return super(SortFilterProxyModel, self).filterAcceptsRow(sourceRow, sourceParent)


class Window(QtGui.QWidget):
    def __init__(self):
        super(Window, self).__init__()

        self.proxyModel = SortFilterProxyModel()
        self.proxyModel.setDynamicSortFilter(True)

        self.proxyGroupBox = QtGui.QGroupBox(u" 兩碼定位 ")


        self.proxyView = QtGui.QTreeView()
        self.proxyView.setRootIsDecorated(False)
        self.proxyView.setAlternatingRowColors(True)
        self.proxyView.setModel(self.proxyModel)
        self.proxyView.setSortingEnabled(True)

      
        proxyLayout = QtGui.QGridLayout()
        proxyLayout.addWidget(self.proxyView, 0, 0, 1, 3)
      
        
      
        self.proxyGroupBox.setLayout(proxyLayout)

        mainLayout = QtGui.QVBoxLayout()
      
        mainLayout.addWidget(self.proxyGroupBox)
        self.setLayout(mainLayout)

        self.setWindowTitle(u"兩碼定位 - 0369")
        self.resize(500, 450)

        self.proxyView.sortByColumn(SENDER, QtCore.Qt.AscendingOrder)
        
  

    def setSourceModel(self, model):
        self.proxyModel.setSourceModel(model)
        

    def filterRegExpChanged(self):
        syntax = QtCore.QRegExp.PatternSyntax(syntax_nr)
        if self.filterCaseSensitivityCheckBox.isChecked():
            caseSensitivity = QtCore.Qt.CaseSensitive
        else:
            caseSensitivity = QtCore.Qt.CaseInsensitive

        

def addMail(model, subject, sender, date, kaijiangli):
    model.insertRow(0)
    model.setData(model.index(0, SUBJECT), subject)
    model.setData(model.index(0, SENDER), sender)
    model.setData(model.index(0, DATE), date)
    model.setData(model.index(0, KAIJIANGLI), kaijiangli)


def createMailModel(parent):
    model = QtGui.QStandardItemModel(0, 4, parent)

    model.setHeaderData(SUBJECT, QtCore.Qt.Horizontal, "Subject")
    model.setHeaderData(SENDER, QtCore.Qt.Horizontal, u"title1")
    model.setHeaderData(DATE, QtCore.Qt.Horizontal, u"title2")
    model.setHeaderData(KAIJIANGLI, QtCore.Qt.Horizontal, u"title3")

   
    addMail(model,"1","2","3","4")
    addMail(model,"1","2","3","4")
    addMail(model,"1","2","3","4")
    addMail(model,"1","2","3","4")
    addMail(model,"1","2","3","4")

    return model


if __name__ == '__main__':

    import sys

    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.setSourceModel(createMailModel(window))
    window.show()
    sys.exit(app.exec_())

作者: tyguaike    時(shí)間: 2013-12-31 09:59
沒人看呀。頂一下




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2