Python上位机软件图形界面实战(2)[通俗易懂]

Python上位机软件图形界面实战(2)[通俗易懂]前言上位机图形界面开发设计用QTDesigner就可以了。但是qtdesigner生成的是.ui文件,我们需要将.ui转换为我们用的py文件。这里就要用到昨天设置Pyuic来生成。由于只是初步开发所以设计的界面没有美化,只是体验一下功能就可以了。1Pyuic的修改今天做的时候才发现昨天的Pyuic没设置好。下来在昨天的基础上只修改这两行。-mPyQt5.uic.pyuic$F…

大家好,又见面了,我是你们的朋友全栈君。

前言

上位机图形界面开发设计用QT Designer就可以了。但是qt designer生成的是.ui文件,我们需要将.ui转换为我们用的py文件。这里就要用到昨天设置Pyuic来生成。由于只是初步开发所以设计的界面没有美化,只是体验一下功能就可以了。

1 Pyuic的修改

今天做的时候才发现昨天的Pyuic没设置好。下来在昨天的基础上只修改这两行。
-m PyQt5.uic.pyuic $ FileName$ -o $ FileNameWithoutExtension $.py
$ProjectFileDir $
注意program这里应该是pyuic5.exe或者pyuic5.bat,我这里错写了python.exe。目录根据自己的pyuic安装位置自己找。多亏各大网友提醒。在此以文字订正。
在这里插入图片描述

2 先设计面板

假设我就先用qt designer 设计及一个登陆界面。然后将文件保存在正在编写的python文件目录下
第一步
打开designer新建一个Widgets。设计界面。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设计完成后保存对路径后,这里会出现一个.ui文件,右键选择Pyuic,生成.py文件

在这里插入图片描述
在这里插入图片描述

3 开始程序调用

在这里插入图片描述
先看清它的类名,明确需要调用的对象

from PyQt5 import QtWidgets  # 导入相关组件
import untitled # 导入登录界面的py文件
app = QtWidgets.QApplication([])
window = QtWidgets.QTableWidget()
ui = untitled.Ui_Form()
ui.setupUi(window)  # 启动运行
window.show()  # 显示窗口
app.exec()

执行结果
在这里插入图片描述

4 功能配置

接下来就是比较麻烦的因为你只是画好的登陆界面,而功能却没有实现,下来就要给这个界面写一个可以检测登陆的功能。
下面我直接给代码。
上述界面的各个部分都有自己的名字,这个在配置功能时会用到。比如:
在这里插入图片描述
下面就是配置的代码,必要的注释我会注释的。

from PyQt5 import QtWidgets  # 导入相关组件
import untitled  # 导入登录界面的py文件
def on_click(self):
    name = ui.lineEdit.text()   # 用户名
    password = ui.lineEdit_2.text() # 密码
    power = ui.comboBox.currentText() # 权限操作
# 当为管理员登陆时
    if power == '管理员':
        if name == '724404574':
            if password == '123123123':
                message = "管理员已登陆"
        else:
            message = "非管理员"
# 当为普通用户登陆时
    elif power == '普通用户':
        if name == '2717760010':
            if password == 'asdasdasd':
                message = "用户登陆成功"
        else:
            message = "登陆失败"
    ui.textBrowser_2.setText(message)
app = QtWidgets.QApplication([])
window = QtWidgets.QTableWidget()
ui = untitled.Ui_Form()
ui.setupUi(window)  # 启动运行
ui.pushButton.clicked.connect(on_click)
window.show()  # 显示窗口
app.exec()

5 执行效果

5.1管理员登陆

成功

在这里插入图片描述

在这里插入图片描述

失败
在这里插入图片描述

5.2 普通用户登陆

成功

在这里插入图片描述
失败
在这里插入图片描述

总结

由于窗口没有美化,所以看起来很不美观,但主要是体验一下界面的功能,以及各功能的配置。掌握这些后,基本的软件登陆界面开发就差不多了,注册按钮我没分配,之后再拓展。
程序中本应有if name==‘main’: 刚才试了一下不写也可以启动,但最好加上,因为if name == ‘main’的意思是:当.py文件被直接运行时,if name == ‘main’之下的代码块将被运行;当.py文件以模块形式被导入时,if name == ‘main’之下的代码块不被运行。所以最终程序是这样的

from PyQt5 import QtWidgets  # 导入相关组件
import untitled  # 导入登录界面的py文件
def on_click(self):
    name = ui.lineEdit.text()   # 用户名
    password = ui.lineEdit_2.text() # 密码
    power = ui.comboBox.currentText() # 权限操作
# 当为管理员登陆时
    if power == '管理员':
        if name == '724404574':
            if password == '123123123':
                message = "管理员已登陆"
        else:
            message = "非管理员"
# 当为普通用户登陆时
    elif power == '普通用户':
        if name == '2717760010':
            if password == 'asdasdasd':
                message = "用户登陆成功"
        else:
            message = "登陆失败"
    ui.textBrowser_2.setText(message)
if __name__=='__main__':

    app = QtWidgets.QApplication([])
    window = QtWidgets.QTableWidget()
    ui = untitled.Ui_Form()
    ui.setupUi(window)  # 启动运行
    ui.pushButton.clicked.connect(on_click)
    window.show()  # 显示窗口
    app.exec()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139652.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 十大排序——最全最详细,一文让你彻底搞懂

    十大排序——最全最详细,一文让你彻底搞懂最全最详细,一文带你了解十大排序Sort写在前面因为GitHub的主文档太长,不容易维护,所以建立子文档以辅助。本篇内容是主文档中的排序部分的扩展。注:本篇内容最早发布于GitHub中,如果你觉得我写得还行,记得给我Star或是Fork~~献给我的家人作者Three领英知乎力扣CSDN????????????不积跬步,无以至千里;不积小流,无以成江海。????Top代表返回顶部????代表到文档末尾如果你觉得我

    2022年7月24日
    12
  • 【树莓派】一根网线将树莓派4B直连笔记本电脑的方法

    【树莓派】一根网线将树莓派4B直连笔记本电脑的方法当我们为新买来的树莓派刷上系统之后,如何将树莓派和笔记本电脑连接到同一网络使用SSH工具登录树莓派呢?相信大多数人的做法是将树莓派连接到路由器上,然后通过SSH工具(putty,SecureCRT等)远程登录,但如果你没有显示器和HDMI线,那么,这里介绍如何使用一根网线来连接树莓派。准备材料1、树莓派2、已经刷入系统的SD卡3、一根网线4、一个已经连接互联网的笔记本5、usb网口…

    2022年6月5日
    39
  • 《前端运维》一、Linux基础–04Shell变量

    这一篇文章,我们就要开始学习正式的Shell语言部分的内容。那在开始之前,我们回忆一下,javascript语言,大体都包含了哪些内容?比如数据类型(对象、字符串、数值),数据结构(对象、数组)、运算

    2022年3月25日
    41
  • Oracle修改表名、主键、索引、外键删除重建

    Oracle修改表名、主键、索引、外键删除重建最近因为要对现有的表结构进行更改,并重建一套与重改之前一模一样的一套表,所以整理了一些SQL,以后备用。(至于为什么要这样做,是因为需要将源表清空,但数据量过大,时间比较紧,所以就不再备份了,索性直接RENAME表名,修改表结构用来当备份表,再重建一套改名前一模一样的系列空表)。以下提及的SQL有可能涉及数据操作,注意先备份。

    2022年5月17日
    52
  • 【玩转嵌入式屏幕显示】(六)ST7789 SPI LCD硬件垂直滚动功能的使用

    一、想法萌生小熊派开发板的LCD小屏幕使用是ST7789驱动IC,之前一直有在该块屏幕上实现滚动显示的想法,最初构想在MCU侧创建一个大的队列,将整个屏幕显示内容交由队列管理,然后不停的去整屏刷新以实现屏幕滚动。理论上这样的实现比较耗资源,耗费CPU资源去操作SPI外设,耗费内存资源去存储显示数据,所以一直没有去做这件事。今天在查看ST7789数据手册写论文时,偶然发现ST7789手册种:咦?Scroll?滚动?发现新大陆!根据手册中的8.14章节描述,旋转滚动仅仅是垂直滚动的一种模式,由垂

    2022年4月8日
    81
  • 下拉框插件select2的使用

    下拉框插件select2的使用

    2021年11月9日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号