⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b1.pyw

📁 利用python语言写的课程设计: 包括学生成绩统计
💻 PYW
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/env python# -*- coding: cp936 -*-from __future__ import divisionimport sysfrom PyQt4 import QtCore, QtGuiclass Window(QtGui.QWidget):    def __init__(self):        QtGui.QWidget.__init__(self)        self.proxyModel = QtGui.QSortFilterProxyModel()          #(A)QSortFilterProxyModel提供从其他的model和view排序,过滤的操作,这是一个model来的        self.proxyModel.setDynamicSortFilter(True)               # 动态的将两表关联起来,后者去关联前者        self.sourceGroupBox = QtGui.QGroupBox(u"原始模块")  #设置box的名字,没关系        self.proxyGroupBox = QtGui.QGroupBox(u"查找\排序模块")        self.sourceView = QtGui.QTreeView()             #建立资源的树形目录          self.sourceView.setRootIsDecorated(False)       #要不要显示根目录的,false是不要        self.sourceView.setAlternatingRowColors(True)   #两行要不要用不同的颜色显示的        self.loadButton = QtGui.QPushButton(u"读入成绩")   #添加的按钮        self.insertButton = QtGui.QPushButton(u"插入成绩")        self.quitButton = QtGui.QPushButton(u"退出系统")        self.saveButton = QtGui.QPushButton(u"保存成绩")        self.studentOverallButton = QtGui.QPushButton(u"学生总评")        self.classOverallButton= QtGui.QPushButton(u"班级总评")        self.courseComboBox = QtGui.QComboBox()           #添加的课程选择的        self.courseComboBox.addItem(u"光电子学")        self.courseComboBox.addItem(u"激光原理")        self.courseComboBox.addItem(u"软件设计")        self.courseComboBox.addItem(u"半导体器件物理")        self.courseLabel= QtGui.QLabel(u"选择课程:")        self.courseLabel.setBuddy(self.courseComboBox)                        self.classOverallLineEdit= QtGui.QLineEdit()      #班级总评的显示栏        self.classOverallLabel = QtGui.QLabel(u"班级总评:")        self.classOverallLabel.setBuddy(self.classOverallLineEdit)        self.proxyView = QtGui.QTreeView()              #“代表”目录,创建了一个        self.proxyView.setRootIsDecorated(False)        #要不要显示根目录的,false是不要        self.proxyView.setAlternatingRowColors(True)    #两行要不要用不同的颜色显示的        self.proxyView.setModel(self.proxyModel)        #用到(A),QTreeView.setModel (self, QAbstractItemModel model),第二个treeview是与用的是proxymodel                                                        #是只有后面一个参数,传入的是一个sortfilterproxymodel,将一个具体的model传入了        self.proxyView.setSortingEnabled(True)          #这个表的排序功能,允许排序功能(B)        self.sortCaseSensitivityCheckBox = QtGui.QCheckBox(u"排序区分大小写")    #创建了一个QCheckBox对象,还没有定义动作,定义了名字        self.filterCaseSensitivityCheckBox = QtGui.QCheckBox(u"查找区分大小写")   #同上        self.filterPatternLineEdit = QtGui.QLineEdit()                        #创建了一个单行输入的        self.filterPatternLabel = QtGui.QLabel(u"查询部分:")            #创建一个label对象,写上名字        self.filterPatternLabel.setBuddy(self.filterPatternLineEdit)          #这里设置了伙伴?有什么用处呢, 显现的是:如果将它去掉,则会显示&符号的。        self.filterSyntaxComboBox = QtGui.QComboBox()                         #建立一个下拉表单对象        self.filterSyntaxComboBox.addItem(u"正则表达式", QtCore.QVariant(QtCore.QRegExp.RegExp))        #给该对象加上item, 名字是,,addItem,是        #QComboBox.addItem (self, QString atext, QVariant auserData = QVariant()),        #包含一个指定的userData(保存在Qt.UserRole里的)        #QRegExp提供部分匹配用有规律的表达式        self.filterSyntaxComboBox.addItem(u"通配符", QtCore.QVariant(QtCore.QRegExp.Wildcard))        #很明显,这里的Wildcard和RegExp都是关键的字,是QRegExp里面的,所以是不能变动的,wildcard是指用通配符匹配        self.filterSyntaxComboBox.addItem(u"固定字符串", QtCore.QVariant(QtCore.QRegExp.FixedString))        #fixedstring是指用的是,固定字符串        self.filterSyntaxLabel = QtGui.QLabel(u"查询语法:")        #前面加上标签        self.filterSyntaxLabel.setBuddy(self.filterSyntaxComboBox)        #将标签设为伙伴        self.filterColumnComboBox = QtGui.QComboBox()        #建一个combobox对象        self.filterColumnComboBox.addItem(u"按名字查询")        #加上项目,共三个        self.filterColumnComboBox.addItem(u"按学号查询")        self.filterColumnComboBox.addItem(u"按平时查询")        self.filterColumnComboBox.addItem(u"按期中查询")        self.filterColumnComboBox.addItem(u"按期末查询")        self.filterColumnComboBox.addItem(u"按总评查询")         self.filterColumnComboBox.addItem(u"按等级查询")                self.filterColumnLabel = QtGui.QLabel(u"查询方式:")        #加上lable        self.filterColumnLabel.setBuddy(self.filterColumnComboBox)        #设置伙伴                self.connect(self.filterPatternLineEdit,                QtCore.SIGNAL('textChanged(const QString &)'),                self.filterRegExpChanged)                          #对象,line输入端,信号,它的文本的变化,槽,filterRegExpChanged的函数        self.connect(self.filterSyntaxComboBox,                QtCore.SIGNAL('currentIndexChanged(int)'),                self.filterRegExpChanged)                          #对象,comboBox,变化,index的变化,(int型的返回),还是跟表达式函数链接,怎么两个都链接到一个函数呢        self.connect(self.filterColumnComboBox,                QtCore.SIGNAL('currentIndexChanged(int)'),                      self.filterColumnChanged)                          #对于,下一个combobox,槽变成了,filtercolumnchanged()说明是栏变化了,        self.connect(self.filterCaseSensitivityCheckBox,                QtCore.SIGNAL('toggled(bool)'),                self.filterRegExpChanged)                          #当被,选定后,也是指向filter函数的槽        self.connect(self.sortCaseSensitivityCheckBox,                 QtCore.SIGNAL('toggled(bool)'),                self.sortChanged)                                  #指向的是sortchanged函数        self.connect(self.quitButton,                QtCore.SIGNAL('clicked()'),                self.close)        self.connect(self.classOverallButton,                QtCore.SIGNAL('clicked()'),                self.classOverall)        self.connect(self.insertButton,                QtCore.SIGNAL('clicked()'),                self.insertScore)                sourceLayout = QtGui.QGridLayout()                         #下面是对layout的指定,就是这样的,layout的意思是布局                                   sourceLayout.addWidget(self.sourceView,1,0,1,8)        #sourceLayout.addWidget(self.loadButton,2,0)        sourceLayout.addWidget(self.insertButton,2,0,1,2)        #ourceLayout.addWidget(self.saveButton,2,2)        sourceLayout.addWidget(self.studentOverallButton,2,2,1,2)        sourceLayout.addWidget(self.classOverallButton,2,4,1,2)        sourceLayout.addWidget(self.quitButton,2,6,1,2)        sourceLayout.addWidget(self.courseLabel,0,0)        sourceLayout.addWidget(self.courseComboBox,0,1,1,2)        sourceLayout.addWidget(self.classOverallLabel,0,4)        sourceLayout.addWidget(self.classOverallLineEdit,0,5,1,2)        self.sourceGroupBox.setLayout(sourceLayout)        #QGridLayout.addWidget (self, QWidget, int row, int column, int rowSpan, int columnSpan, Qt.Alignment = 0)        #设置的是行,列,行跨度,列跨度,有了这些知识这一整部分的知识就完整了

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -