赞
踩
上位机图形界面开发设计用QT Designer就可以了。但是qt designer生成的是.ui文件,我们需要将.ui转换为我们用的py文件。这里就要用到昨天设置Pyuic来生成。由于只是初步开发所以设计的界面没有美化,只是体验一下功能就可以了。
今天做的时候才发现昨天的Pyuic没设置好。下来在昨天的基础上只修改这两行。
-m PyQt5.uic.pyuic $ FileName$ -o $ FileNameWithoutExtension $.py
$ProjectFileDir $
注意program这里应该是pyuic5.exe或者pyuic5.bat,我这里错写了python.exe。目录根据自己的pyuic安装位置自己找。多亏各大网友提醒。在此以文字订正。
假设我就先用qt designer 设计及一个登陆界面。然后将文件保存在正在编写的python文件目录下
第一步
打开designer新建一个Widgets。设计界面。
设计完成后保存对路径后,这里会出现一个.ui文件,右键选择Pyuic,生成.py文件
先看清它的类名,明确需要调用的对象
from PyQt5 import QtWidgets # 导入相关组件
import untitled # 导入登录界面的py文件
app = QtWidgets.QApplication([])
window = QtWidgets.QTableWidget()
ui = untitled.Ui_Form()
ui.setupUi(window) # 启动运行
window.show() # 显示窗口
app.exec()
执行结果
接下来就是比较麻烦的因为你只是画好的登陆界面,而功能却没有实现,下来就要给这个界面写一个可以检测登陆的功能。
下面我直接给代码。
上述界面的各个部分都有自己的名字,这个在配置功能时会用到。比如:
下面就是配置的代码,必要的注释我会注释的。
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()
成功
失败
成功
失败
由于窗口没有美化,所以看起来很不美观,但主要是体验一下界面的功能,以及各功能的配置。掌握这些后,基本的软件登陆界面开发就差不多了,注册按钮我没分配,之后再拓展。
程序中本应有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__':
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。