使用eric6创建并运行第一个QT程序

创建第一个QT程序:

点击new project

在这里插入图片描述

项目名:test

保存位置:D:\eric6space\test

选yes。

在这里插入图片描述

选OK。

保存位置中自动生成如下文件

在这里插入图片描述

下面开始创建QT端的UI文件:

在这里插入图片描述

选择要生成的窗体对象,这里选什么都可以,后续进入到QT设计师中可以删除重新打开其他的类型

在这里插入图片描述

点击OK,选择保存位置,这里推荐新建文件夹,让UI代码和业务代码分开

在这里插入图片描述

刚才是选择路径,现在输入要起的文件名,点击保存

在这里插入图片描述

文件夹中生成新的UI文件:
在这里插入图片描述

并自动打开QT设计师:

在这里插入图片描述

在这里设计前端界面即可。

接下来做一个猜数小游戏:

选中Push Button 拖动到MainWindow中

在这里插入图片描述

双击PushButton,改显示内容(text),在右边属性编辑器中,对按钮属性赋值,这里我改了他的字体大小

在这里插入图片描述

然后我们增加一个Line Edit部件,并双击写下默认显示的文字,如下图:

在这里插入图片描述

前端大致已经做好了,接下来我们要把设计的界面生成对应代码,并自定义一下单击按钮后会产生的响应。转到eric6端,编译一下刚刚设计的Ui

在这里插入图片描述

在这里插入图片描述

编译之后自动生成Ui_开头的python文件,是UI设计直接转换成py代码,可以直接在eric6里运行
在这里插入图片描述

再生成业务端的初步代码:
在这里插入图片描述

点击New,输入类名和文件名,调整Path,为了独立性,path最好不要和刚刚编译产生UI代码放在一个文件夹,这里我们选择放在上一级文件里即可

在这里插入图片描述

点击OK后勾选给刚刚的按钮创建单击事件对应的函数。

在这里插入图片描述

OK之后,生成了第二个py文件,主要是用来写业务代码

在这里插入图片描述

在eric6中也可以看到对应的新文件

在这里插入图片描述

UI_开头的py文件是直接可以运行的,他是Qt设计师中设计的界面直接对应的代码,eric6帮我们生成了一个类,业务代码里的主函数中引入了这个类。

UiMainWindow.py继承了前者中的类,具体的逻辑代码是要在UIMainWindow.py中实现的。

接着需要编写代码,来实现业务逻辑。

由于自动生成的UiMainWindow.py,导入的包不全,我们需要自己手导一下需要用到的包。

注意删除自动生成的点,此点删除不影响程序运行,如果不删除,有时会报错。

在这里插入图片描述

由于我们UI代码业务代码分离,不在同一文件夹下,待会运行时以业务代码主函数所在地址为工作地址,所以我们在导UI代码时,需要加个前缀

在这里插入图片描述

此程序需要手动加入以下包

在这里插入图片描述

初始化函数新增代码:

在这里插入图片描述

完善按钮对应函数:

在这里插入图片描述

新增函数,关闭提示:

在这里插入图片描述

编写主函数:

在这里插入图片描述

主函数中,第一句和第三句是固定的,可以理解为启动和关闭。

第二句话实例化了上面编写的类,自动运行了其中的初始化函数。

业务python文件完整代码如下:

# -*- coding: utf-8 -*-
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import *

from UiCode.Ui_UiMainWindow import Ui_MainWindow
from random import randint

import sys

class MainWindow(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.num = randint(1,100)
        self.show()
    
    @pyqtSlot()
    def on_pushButton_clicked(self):
       guessnumber = int(self.lineEdit.text())
       print(self.num)
       if guessnumber > self.num:

            QMessageBox.about(self, '看结果','猜大了!')

            self.lineEdit.setFocus()

       elif guessnumber < self.num:

           QMessageBox.about(self, '看结果','猜小了!')

           self.lineEdit.setFocus()

       else:

          QMessageBox.about(self, '看结果','答对了!进入下一轮!')

          self.num = randint(1,100)

          self.lineEdit.clear()

          self.lineEdit.setFocus()

    def closeEvent(self, event):

        reply = QMessageBox.question(self, '确认', '确认退出吗', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__ == "__main__":

    app = QApplication(sys.argv)

    action = MainWindow()

    sys.exit(app.exec_())

文件整体架构:
在这里插入图片描述
F2运行,工作路径随便选

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

关闭所有程序后,想要再次打开,只需要用eric6 open.epj文件即可

有时我们业务代码可能有好几个py文件,所以为了统筹,一般把主函数单独写在一个新的main里

用main引用业务代码即可,就能在main里运行程序了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值