zoukankan      html  css  js  c++  java
  • python实验4

    课程:《Python程序设计》

    班级: 1942

    姓名: 谭子悦

    学号:20194215

    实验教师:王志强

    实验日期:2020年6月14日

    必修/选修: 公选课

    ## 1.实验内容

    制作计时器;

    ## 2. 实验过程及结果

    搭建实验环境:下载Qt,pyside,并与pycharm进行对接

    (1)设计UI界面 timer.ui

    根据功能,需要一个显示时间的部件、两个功能按钮,分别选用LCD Number显示部件和是pushButton部件。

    (2)利用pyside2-uic工具将ui文件转换成py文件。

     (3)初始化界面

    这里将ui_timer当作模块导入,里面有个Ui_Timer类,创建主窗体对象window和ui界面对象timer,最后显示窗体,运行程序就出现了之前的计时UI界面了。

    (4) 4.实现设置时间功能

    导入QInputDialog输入对话框,添加一个timerReset方法设置时间。在setup方法中需要将按钮的点击事件与设置时间的方法先绑定,这样当触发按钮时,就会调用timerReset方法了。

    (5) 实现开始计时功能

    '''

    Name: Timer

    Author:Y&T

    Time:2020-6-14

    '''

    import sys

    from PySide2.QtWidgets import QMainWindow, QApplication

    from ui_timer import Ui_Timer

    app = QApplication(sys.argv)

    window = QMainWindow()

    timer = Ui_Timer()

    timer.setupUi(window)

    window.show()

    sys.exit(app.exec_())

    # 继承QMainWindow和Ui_Timer类

    class Timer(QMainWindow, Ui_Timer):

        def__init__(self):

        super().__int__()

        self.setupUi(self)

        self.shou()

    if __name__ == "__main__":

        app = QApplication(sys.argv)

        timer = Timer()

        sys.exit(app.exec_())

    class Timer(QMainWindow, Ui_Timer):

        def__init__(self):

        super().__int__()

        self.setupUi(self)

        self.setup()

        self.show()

        def setup(self):

            self.lcdNumber.display(0)

    if __name__ == "__main__"

        app = QApplication(sys.argv)

        timer = Timer()

        sys.exit(app.exec_())

    # 继承QMainWindow和Timer类

    class Timer(QMainWindow, Ui_Timer):

        def__init__(self):

        super().__int__()

        self.setupUi(self)

        self.setup()

        self.show()

        def setup(self):

            self.lcdNumber.display(0)

            self.number = o

            self.pbtu_reset.clicked.connect(self.timerReset)

        def timerReset(self):

            self.number = int(QInputDialog.getText(None, "输入时间"))

        self.lcdNumber.display(self.number)

    if __name__ == "__main__":

        app = PApplication(sys.argv)

        timer = Timer()

        sys.exit(app.exec_())

    class Timer(QMainWindow, Ui_Timer):

        def__init__(self):

        super().__int__()

        self.setupUi(self)

        self.setup()

        self.show()

        def setup(self):

            self.lcdNumber.display(0)

            self.number = 0

            self.timer = QTimer()

            self.second = 0

            self.pbtn_reset.clicked.connect(self.timerReset)

            self.pbtn_start.clicked.connect(self, timerStart)

        def timerReset(self):

            self.number = int(QInputDialog.getText(None, "输入时间"))

            self.lcdNumber.display(self.number)

        def timerStart(self):

            self.pbtn_start.setEnabled(False)

            self.timer.singleShot(1000, self.nextSecond)

        def timerSecond(self):

            if self.number == self.second:

                self.timer.stop()

                QMessageBox.information(self, "提示信息", "时间到", QMessageBox.Yes)

                self.pbtn_start.setEnabled(True)

            else:

                self.second += 1

                self.lcdNumber.display(self.number - self.second)

                self.timer.singleShot(1000, self.nextSecond)

    if __name__ == "__main__":

        app = QApplication(sys.argv)

        timer = Timer()

        sys.exit(app.exec_())

    ## 3. 实验过程中遇到的问题和解决过程

    - 问题1:cmd中No module named 'pip'

    - 问题1解决方案:cmd中敲击cmd中敲命令:python -m ensurepip

    - 问题2:ui转py遇到问题

    - 问题2解决方案:使用cmd进行转换

    - 问题3:时间计时功能实现复杂

    - 问题3解决方案:为了实现计时功能,这里从此那个QtCore核心模块中导入QTimer计时方法,同时在QtWidget中导入了QMessageBox消息弹窗框方法。参考部分网上内容。

    ## 其他(感悟、思考等)

    转眼间,python程序设计课已经结束,很感谢老师的付出,也感谢选择了这门课的自己。

    相比于文科的其他课程,我认为python课更多的是同学自己的钻研、学习。这一点非常感谢老师的当天交作业制度。我觉得这对于提高我的自控与自学能力有很大的帮助。

    ## 参考资料

    《Python程序设计》课本

  • 相关阅读:
    MyEclipse 2016CI破解版for Mac
    关于Mac系统中my sql 和navicat for mysql 的连接问题。
    二分总结
    递推总结
    区间DP学习笔记 6/20
    搜索考试
    模板整理
    防线 2020/3/31
    JS 循环遍历JSON数据
    pm am 12小时格式化
  • 原文地址:https://www.cnblogs.com/Ye-Tong/p/Y_Tforth.html
Copyright © 2011-2022 走看看