pyqt

# coding=utf-8
from PyQt4.QtGui import *
from PyQt4.QtCore import *

import locale
import sys
class MyDialog(QDialog):
    def __init__(self, parent=None):
        super(MyDialog, self).__init__(parent)
        self.MyTable = MyTabView(4, 3)
        print type(self.MyTable)
        self.MyTable.setHorizontalHeaderLabels(['姓名', '身高', '体重'])
        s = "松鼠"

        print s
        newItem = QTableWidgetItem(s)
        self.MyTable.setItem(0, 0, newItem)

        newItem = QTableWidgetItem("10cm")
        self.MyTable.setItem(0, 1, newItem)

        newItem = QTableWidgetItem("60g")
        self.MyTable.setItem(0, 2, newItem)

        layout = QHBoxLayout()
        layout.addWidget(self.MyTable)
        self.setLayout(layout)
        self.MyTable.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.MyTable.setEditTriggers(QAbstractItemView.NoEditTriggers)

        # self.MyTable.setEditTriggers(QAbstractItemView.DoubleClicked)
        # self.MyTable.SelectedClicked(self.a())
    def mouseDoubleClickEvent(self, event):
        QTableView.mouseDoubleClickEvent(self, event)
        pos = event.pos()
        item = self.indexAt(pos)
        print 'jianpan'
        if item:
            print "item clicked at ", item.row(), " ", item.column()

class MyTabView(QTableView):
    def __init__(self, row,column,parent=None):
        super(MyTabView, self).__init__(parent)
        self.model = QStandardItemModel(row, column)
        self.setModel(self.model)

    def mouseDoubleClickEvent(self, event):
        QTableView.mouseDoubleClickEvent(self, event)
        pos = event.pos()
        item = self.indexAt(pos)
        if item:
            print "item clicked at ", item.row(), " ", item.column()




if __name__ == '__main__':
    reload(sys)
    sys.setdefaultencoding('utf8')
    mycode = locale.getpreferredencoding()
    mycode = 'utf-8'
    code = QTextCodec.codecForName(mycode)
    QTextCodec.setCodecForLocale(code)
    QTextCodec.setCodecForTr(code)
    QTextCodec.setCodecForCStrings(code)
    app = QApplication(sys.argv)
    myWindow = MyDialog()
    myWindow.show()
    sys.exit(app.exec_())

posted @ 2017-03-25 00:53  我的大金金  阅读(193)  评论(0编辑  收藏  举报