源代碼如下所示:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled2.ui'
#
# Created: Sat Oct 11 16:07:29 2014
# by: PyQt4 UI code generator 4.11.1
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Form(QtGui.QDialog):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(800, 600)
self.tableView = QtGui.QTableView(Form)
self.tableView.setGeometry(QtCore.QRect(5, 30, 790, 560))
self.tableView.setObjectName(_fromUtf8("tableView"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(10, 10, 300, 12))
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "定值設定", None))
self.label.setText(_translate("Form", "請在下面的表格中設定定值參數:", None))
#初始化表格
self.tableView_set()
def tableView_set(self):
#添加表頭:
self.model = QtGui.QStandardItemModel(self.tableView)
#設定表格屬性:
self.model.setRowCount(17)
self.model.setColumnCount(8)
#設定表頭
self.model.setHeaderData(0,QtCore.Qt.Horizontal,_fromUtf8(u"類型"))
self.model.setHeaderData(1,QtCore.Qt.Horizontal,_fromUtf8(u"值"))
self.model.setHeaderData(2,QtCore.Qt.Horizontal,_fromUtf8(u""))
self.model.setHeaderData(3,QtCore.Qt.Horizontal,_fromUtf8(u"類型"))
self.model.setHeaderData(4,QtCore.Qt.Horizontal,_fromUtf8(u"值"))
self.model.setHeaderData(5,QtCore.Qt.Horizontal,_fromUtf8(u""))
self.model.setHeaderData(6,QtCore.Qt.Horizontal,_fromUtf8(u"類型"))
self.model.setHeaderData(7,QtCore.Qt.Horizontal,_fromUtf8(u"值"))
self.tableView.setModel(self.model)
#設定列寬
self.tableView.setColumnWidth(0,100)
self.tableView.setColumnWidth(1,80)
self.tableView.setColumnWidth(2,80)
self.tableView.setColumnWidth(3,100)
self.tableView.setColumnWidth(4,80)
self.tableView.setColumnWidth(5,80)
self.tableView.setColumnWidth(6,100)
self.tableView.setColumnWidth(7,80)
#合并單元格的效果
#第一個參數:要改變的單元格行數
#第二個參數:要改變的單元格列數
#第三個參數:需要合并的行數
#第四個參數:需要合并的列數
self.tableView.setSpan(0, 2, 17, 1)
self.tableView.setSpan(0, 5, 17, 1)
#設定單元格禁止更改
#self.tableView.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
#表頭資訊顯示居左
#self.tableView.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft)
#表頭資訊顯示居中
self.tableView.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignCenter)
'''
#添加表項
for i in range(0,3):
self.model.setItem(i,0,QtGui.QStandardItem("2009441676"))
#設定字元顔色
self.model.item(i,0).setForeground(QtGui.QBrush(QtGui.QColor(255, 0, 0)))
#設定字元位置
self.model.item(i,0).setTextAlignment(QtCore.Qt.AlignCenter)
self.model.setItem(i,1,QtGui.QStandardItem(_fromUtf8("哈哈")))
'''
#添加表項
set_value_type_list = [u'過流I段定值',u'過流II段定值',u'過流III段定值',u'零序過流定值',u'後加速定值',u'PT有壓定值',u'PT過壓定值',u'PT無壓定值',u'過流I段延時',u'過流II段延時',u'過流III段延時',u'零序過流延時',u'後加速延時',u'重合閘I段延時',u'重合閘II段延時',u'重合閘III段延時',u'重合複歸延時',u'反時限曲線',u'反時限啟動',u'反時限倍數',u'環境溫度',u'控制字',u'手機号碼']
index = 0
for i in range(0,30):
self.model.setItem(i,0,QtGui.QStandardItem(_fromUtf8(set_value_type_list[index])))
index += 1
#設定字元顔色
self.model.item(i,0).setForeground(QtGui.QBrush(QtGui.QColor(255, 0, 0)))
#設定字元位置
self.model.item(i,0).setTextAlignment(QtCore.Qt.AlignCenter)
if index >= len(set_value_type_list):
break
self.model.setItem(i,3,QtGui.QStandardItem(_fromUtf8(set_value_type_list[index])))
index += 1
#設定字元顔色
self.model.item(i,3).setForeground(QtGui.QBrush(QtGui.QColor(255, 0, 0)))
#設定字元位置
self.model.item(i,3).setTextAlignment(QtCore.Qt.AlignCenter)
if index >= len(set_value_type_list):
break
self.model.setItem(i,6,QtGui.QStandardItem(_fromUtf8(set_value_type_list[index])))
index += 1
#設定字元顔色
self.model.item(i,6).setForeground(QtGui.QBrush(QtGui.QColor(255, 0, 0)))
#設定字元位置
self.model.item(i,6).setTextAlignment(QtCore.Qt.AlignCenter)
if index >= len(set_value_type_list):
break
self.tableView.setModel(self.model)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())