📄 b2.pyw
字号:
def sortChanged(self): #排序时候的大小写敏感的设定,check了为真了就是toggled了就设大小写铭感的 if self.sortCaseSensitivityCheckBox.isChecked(): caseSensitivity = QtCore.Qt.CaseSensitive else: caseSensitivity = QtCore.Qt.CaseInsensitive self.proxyModel.setSortCaseSensitivity(caseSensitivity) #在这里设sort的casesensitivity的时候 传参是一个指向方法的,参数的方法也有用了 def allFee(self): model1=QtGui.QStandardItemModel(0, 3,self) model1.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant(u"姓名")) model1.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant(u"主叫电话号码")) model1.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant(u"通话费用")) model1.insertRow(0) model1.setData(model1.index(0,0),QtCore.QVariant(u"张明")) model1.setData(model1.index(0,2),QtCore.QVariant(3491234)) model1.setData(model1.index(0,1),QtCore.QVariant(feeZM)) model1.insertRow(0) model1.setData(model1.index(0,0),QtCore.QVariant(u"李小红")) model1.setData(model1.index(0,2),QtCore.QVariant(4927038)) model1.setData(model1.index(0,1),QtCore.QVariant(feeLXH)) model1.insertRow(0) model1.setData(model1.index(0,0),QtCore.QVariant(u"王励")) model1.setData(model1.index(0,2),QtCore.QVariant(7216340)) model1.setData(model1.index(0,1),QtCore.QVariant(feeWL)) model1.insertRow(0) model1.setData(model1.index(0,0),QtCore.QVariant(u"赵强")) model1.setData(model1.index(0,2),QtCore.QVariant(3492200)) model1.setData(model1.index(0,1),QtCore.QVariant(feeZQ)) model1.insertRow(0) model1.setData(model1.index(0,0),QtCore.QVariant(u"杨冬")) model1.setData(model1.index(0,2),QtCore.QVariant(8120321)) model1.setData(model1.index(0,1),QtCore.QVariant(feeYD)) self.sourceView.setModel(model1) self.proxyModel.setSourceModel(model1) def resetModel(self): self.proxyModel.setSourceModel(model) #调用,QSortFilterProxyModel里面的setSourceModel的方法(并使用函数传入的model) self.sourceView.setModel(model) feeZM=0feeLXH=0feeWL=0feeZQ=0feeYD=0 def addCall(model,mainCode,mainNumber,calledCode,calledNumber,callTime): #定义有4个参数的方法, model.insertRow(0) #插入row为0的行就是从最上面的一行开始插入 #为行为0的index开始插入,相应的数据,#QVariant对string什么的,都直接显现值的,如果有color就要value的,文档规定的) model.setData(model.index(0, 1), QtCore.QVariant(mainCode)) model.setData(model.index(0, 2), QtCore.QVariant(mainNumber)) model.setData(model.index(0, 3), QtCore.QVariant(calledCode)) model.setData(model.index(0, 4), QtCore.QVariant(calledNumber)) model.setData(model.index(0, 5), QtCore.QVariant(callTime)) if calledCode != "025": callType=u"长途" if calledCode == "025": callType=u"本地" model.setData(model.index(0, 6), QtCore.QVariant(callType)) if callType == u"本地": time = callTime /60 +1 if (time <3): fee = time * 0.5 if (time >3): fee = time * (0.5+time/3*0.2) model.setData(model.index(0, 7), QtCore.QVariant(fee)) if callType == u"长途": if calledCode=="010": fee =(callTime/60+1)*1.2 model.setData(model.index(0, 7), QtCore.QVariant(fee)) if calledCode=="021": fee =(callTime/60+1)*0.8 model.setData(model.index(0, 7), QtCore.QVariant(fee)) if calledCode=="0571": fee=(callTime/60+1)*1.0 model.setData(model.index(0, 7), QtCore.QVariant(fee)) global feeZM global feeLXH global feeWL global feeZQ global feeYD if mainNumber == 3491234: name = u"张明" feeZM+=fee if mainNumber == 4927038: name = u"李小红" feeLXH+=fee if mainNumber == 7216340: name =u"王励" feeWL+=fee if mainNumber == 3492200: name=u"赵强" feeZQ+=fee if mainNumber == 8120321: name=u"杨冬" feeYD+=fee model.setData(model.index(0, 0), QtCore.QVariant(name)) #QVariant:QVariant::QVariant ( const QString & val ) #Constructs a new variant with a string value, val. ,用这个变型来传,就而不是直接传,这个也是有意思的def createCallModel(parent): #注意这个函数传入的是一个父类,因为它们不是Window类中的,所以要继承那个父类 global model model = QtGui.QStandardItemModel(0, 8, parent) #今天遇到的第三个model,标准项目model,第一个是rows,第二个是columns,和父类 #这又是创建了一个名字空间 model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant(u"姓名")) #就是在设horizonal的标题数据,这样用来显示的 model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant(u"主叫区号")) model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant(u"主叫电话号码")) model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant(u"被叫区号")) model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant(u"被叫电话号码")) model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QVariant(u"通话时长")) model.setHeaderData(6, QtCore.Qt.Horizontal, QtCore.QVariant(u"通话类型")) model.setHeaderData(7, QtCore.Qt.Horizontal, QtCore.QVariant(u"通话费用")) addCall(model,"025",3491234,"025", 5319971, 70) addCall(model,"025", 4927038, "010", 62110045, 236) addCall(model,"025", 7216340, "025", 4521009, 310) addCall(model,"025", 3491234, "0571", 2199516, 100) addCall(model,"025", 8120321, "021", 81094532, 50) addCall(model,"025", 3491234, "025", 5319971, 80) addCall(model,"025", 4927038, "025", 3491234, 115) addCall(model,"025", 8120321, "025", 7216340, 47) addCall(model,"025", 7216340, "010", 62110045, 93) addCall(model,"025", 3491234, "010", 62110045, 792) addCall(model,"025", 4927038, "0571", 2199516, 931) addCall(model,"025", 3491234, "025", 5319971, 580) addCall(model,"025", 4927038, "025", 3491234, 358) addCall(model,"025", 8120321, "021", 81094532, 197) addCall(model,"025", 7216340, "025", 4521009, 256) addCall(model,"025", 7216340, "010", 62110045, 193) addCall(model,"025", 3492200, "025", 4521009, 320) addCall(model,"025", 3491234, "025", 5319971, 270) #是调用的addCall的方法,第一是传入这里建的model,同时有三个变量,本来是0行3列,addMail里面是有插入的,所以是可以运行的 #data虽然有用,隔开,但是最后的都是输入data的范围的 return model #这里ruturn的意义是什么呢,不return的话就什么都不出现了,这样是没有意义的。4app = QtGui.QApplication(sys.argv)window = Window()window.setSourceModel(createCallModel(window))#这里设置了sourceModel就是我们创建的以window()为父类的model,调用的createMailModel的方法,setSourceModel就是他的一个函数#所以是直接可以被调用的window.show()sys.exit(app.exec_())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -