PyQt5大学课程表

143 阅读3分钟

注:文章原地址:blog.csdn.net/weixin_5237…

  • 闲来无事,暑假自学了PyQt5,在开学后用PyQt5做了一个简单的课程表,避免了每次都需要去教务看课表的麻烦。喜欢的可以支持一下。

image.png

  • 代码
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class CourseTimetable(QMainWindow):
    def __init__(self):
        super(CourseTimetable, self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("Course")
        self.resize(560,950)

        '''布局'''
        widget = QWidget()
        grid = QGridLayout()

        '''头部'''
        name = QLabel('课程表')
        name.setStyleSheet('font-size:25px;')
        grid.addWidget(name,0,0,1,2)

        week = QPushButton('第一周')
        week.setIcon(QIcon('week.ico'))
        grid.addWidget(week,0,5,1,2)

        more = QPushButton()
        more.setIcon(QIcon('threepoint.ico'))
        grid.addWidget(more,0,7,1,1)


        '''课表框架'''
        label1 = QLabel('节次/时间')
        label1.setAlignment(Qt.AlignCenter)
        label1.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label1, 1, 0, 1, 1)

        label2 = QLabel('星期一')
        label2.setAlignment(Qt.AlignCenter)
        label2.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label2, 1, 1, 1, 1)

        label3 = QLabel('星期二')
        label3.setAlignment(Qt.AlignCenter)
        label3.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label3, 1, 2, 1, 1)

        label4 = QLabel('星期三')
        label4.setAlignment(Qt.AlignCenter)
        label4.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label4, 1, 3, 1, 1)

        label5 = QLabel('星期四')
        label5.setAlignment(Qt.AlignCenter)
        label5.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label5, 1, 4, 1, 1)

        label6 = QLabel('星期五')
        label6.setAlignment(Qt.AlignCenter)
        label6.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label6, 1, 5, 1, 1)

        label7 = QLabel('星期六')
        label7.setAlignment(Qt.AlignCenter)
        label7.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label7, 1, 6, 1, 1)

        label8 = QLabel('星期日')
        label8.setAlignment(Qt.AlignCenter)
        label8.setStyleSheet('background-color:Gainsboro;')
        grid.addWidget(label8, 1, 7, 1, 1)

        label_12 = QLabel()
        label_12.setText(
            "<font style = 'font-size:15px;font-weight: bold;text-align:center;'>第一节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>08:15~09:00</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:15px;font-weight: bold;'>第二节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>09:05~09:50</font>"
        )
        label_12.setAlignment(Qt.AlignCenter)
        label_12.setStyleSheet('background-color:	LightGreen;')
        grid.addWidget(label_12,2,0,4,1)

        label_34 = QLabel()
        label_34.setText(
            "<font style = 'font-size:15px;font-weight: bold;'>第三节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>08:15~09:00</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:15px;font-weight: bold;'>第四节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>09:05~09:50</font>"
        )
        label_34.setAlignment(Qt.AlignCenter)
        label_34.setStyleSheet('background-color:	MediumOrchid;')
        grid.addWidget(label_34, 6,0,4,1)

        label_56 = QLabel()
        label_56.setText(
            "<font style = 'font-size:15px;font-weight: bold;'>第五节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>08:15~09:00</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:15px;font-weight: bold;'>第六节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>09:05~09:50</font>"
        )
        label_56.setAlignment(Qt.AlignCenter)
        label_56.setStyleSheet('background-color:	LightGreen;')
        grid.addWidget(label_56, 10, 0, 4, 1)

        label_78 = QLabel('')
        label_78.setText(
            "<font style = 'font-size:15px;font-weight: bold;'>第七节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>08:15~09:00</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:15px;font-weight: bold;'>第八节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>09:05~09:50</font>"
        )
        label_78.setAlignment(Qt.AlignCenter)
        label_78.setStyleSheet('background-color:	MediumOrchid;')
        grid.addWidget(label_78, 14, 0, 4, 1)

        label_9 = QLabel('')
        label_9.setText(
            "<font style = 'font-size:15px;font-weight: bold;'>第九节</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:13px;'>08:15~09:00</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:15px;font-weight: bold;'>第十节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>09:05~09:50</font>"
            "<br/>""<br/>"
            "<font style = 'font-size:15px;font-weight: bold;'>第十一节</font>"
            "<br/>" "<br/>"
            "<font style = 'font-size:13px;'>09:05~09:50</font>"
        )
        label_9.setAlignment(Qt.AlignCenter)
        label_9.setStyleSheet('background-color:LightSteelBlue;')
        grid.addWidget(label_9, 18, 0, 5, 1)


        '''课表内容'''

        '''星期一'''
        Monday_12 = QTextEdit('')
        Monday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Monday_12, 2, 1, 4, 1)

        Monday_34 = QTextEdit('')
        Monday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Monday_34,6,1,4,1)

        Monday_56 = QTextEdit('')
        Monday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Monday_56, 10, 1, 4, 1)

        Monday_78 = QTextEdit('')
        Monday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Monday_78, 14, 1, 4, 1)

        Monday_9 = QTextEdit('')
        Monday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Monday_9, 18, 1, 5, 1)


        '''星期二'''
        Tuesday_12 = QTextEdit('')
        Tuesday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Tuesday_12, 2, 2, 4, 1)

        Tuesday_34 = QTextEdit('')
        Tuesday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Tuesday_34, 6, 2, 4, 1)

        Tuesday_56 = QTextEdit('')
        Tuesday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Tuesday_56, 10, 2, 4, 1)

        Tuesday_78 = QTextEdit('')
        Tuesday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Tuesday_78, 14, 2, 4, 1)

        Tuesday_9 = QTextEdit('')
        Tuesday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Tuesday_9, 18, 2, 5, 1)


        '''星期三'''
        Wednesday_12 = QTextEdit('')
        Wednesday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Wednesday_12, 2, 3, 4, 1)

        Wednesday_34 = QTextEdit('')
        Wednesday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Wednesday_34, 6, 3, 4, 1)

        Wednesday_56 = QTextEdit('')
        Wednesday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Wednesday_56, 10, 3, 4, 1)

        Wednesday_78 = QTextEdit('')
        Wednesday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Wednesday_78, 14, 3, 4, 1)

        Wednesday_9 = QTextEdit('')
        Wednesday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Wednesday_9, 18, 3, 5, 1)


        '''星期四'''
        Thursday_12 = QTextEdit('')
        Thursday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Thursday_12, 2, 4, 4, 1)

        Thursday_34 = QTextEdit('')
        Thursday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Thursday_34, 6, 4, 4, 1)

        Thursday_56 = QTextEdit('')
        Thursday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Thursday_56, 10, 4, 4, 1)

        Thursday_78 = QTextEdit('')
        Thursday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Thursday_78, 14, 4, 4, 1)

        Thursday_9 = QTextEdit('')
        Thursday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Thursday_9, 18, 4, 5, 1)


        '''星期五'''
        Friday_12 = QTextEdit('')
        Friday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Friday_12, 2, 5, 4, 1)

        Friday_34 = QTextEdit('')
        Friday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Friday_34, 6, 5, 4, 1)

        Friday_56 = QTextEdit('')
        Friday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Friday_56, 10, 5, 4, 1)

        Friday_78 = QTextEdit('')
        Friday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Friday_78, 14, 5, 4, 1)

        Friday_9 = QTextEdit('')
        Friday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Friday_9, 18, 5, 5, 1)


        '''星期六'''
        Saturday_12 = QTextEdit('')
        Saturday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Saturday_12, 2, 6, 4, 1)

        Saturday_34 = QTextEdit('')
        Saturday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Saturday_34, 6, 6, 4, 1)

        Saturday_56 = QTextEdit('')
        Saturday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Saturday_56, 10, 6, 4, 1)

        Saturday_78 = QTextEdit('')
        Saturday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Saturday_78, 14, 6, 4, 1)

        Saturday_9 = QTextEdit('')
        Saturday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Saturday_9, 18, 6, 5, 1)


        '''星期日'''
        Sunday_12 = QTextEdit('')
        Sunday_12.setStyleSheet('font-size:16px;')
        grid.addWidget(Sunday_12, 2, 7, 4, 1)

        Sunday_34 = QTextEdit('')
        Sunday_34.setStyleSheet('font-size:16px;')
        grid.addWidget(Sunday_34, 6, 7, 4, 1)

        Sunday_56 = QTextEdit('')
        Sunday_56.setStyleSheet('font-size:16px;')
        grid.addWidget(Sunday_56, 10, 7, 4, 1)

        Sunday_78 = QTextEdit('')
        Sunday_78.setStyleSheet('font-size:16px;')
        grid.addWidget(Sunday_78, 14, 7, 4, 1)

        Sunday_9 = QTextEdit('')
        Sunday_9.setStyleSheet('font-size:16px;')
        grid.addWidget(Sunday_9, 18, 7, 5, 1)


        widget.setLayout(grid)
        self.setCentralWidget(widget)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyleSheet('''
                            QPushButton{background-color: #f0f0f0;}
                            QPushButton:hover{background-color: #f0f0f0;}
                            QPushButton:pressed{background-color: #f0f0f0;}
                        ''')
    main_wnd = CourseTimetable()
    main_wnd.show()
    app.exec()

  • 注:课程表中所用的icon再阿里巴巴矢量图标库中可以下载。