我负责本次项目实训的用户界面
下面是一个测试代码功能的简单页面
def __init__(self, quit_func, reg_func, close_callback): print("初始化登陆界面类") self.reg_frame = None self.btn_reg = None self.btn_quit = None self.user = None self.key = None self.confirm = None self.quit_func = quit_func self.reg_func = reg_func self.close_callback = close_callback def show(self): self.reg_frame.protocol("WM_DELETE_WINDOW", self.close_callback) screen_width = self.reg_frame.winfo_screenwidth() screen_height = self.reg_frame.winfo_screenheight() width = 400 height = 360 gm_str = "%dx%d+%d+%d" % (width, height, (screen_width - width) / 2, (screen_height - 1.2 * height) / 2) self.reg_frame.geometry(gm_str) self.reg_frame.title("注册") self.reg_frame.resizable(width=False, height=False) title_lable = Label(self.reg_frame, text="聊天系统 - 注册", font=("黑体", 16), fg="white", bg="#555555") title_lable.pack(ipady=10, fill=X) # 注册表单frame form_frame = Frame(self.reg_frame, bg="#333333") user_img = PhotoImage(file="image\\user.png", master=self.reg_frame) key_img = PhotoImage(file="image\\key.png", master=self.reg_frame) confirm_img = PhotoImage(file="image\\key.png", master=self.reg_frame) user_img_label = Label(form_frame, image=user_img, width=30, height=30, bg="#333333") key_img_label = Label(form_frame, image=key_img, width=30, height=30, bg="#333333") confirm_img_label = Label(form_frame, image=confirm_img, width=30, height=30, bg="#333333") user_img_label.grid(row=0, column=0, padx=5) key_img_label.grid(row=1, column=0, padx=5) confirm_img_label.grid(row=2, column=0, padx=5) Label(form_frame, text="用户名:", font=("宋体", 12), bg="#333333", fg="white") \ .grid(row=0, column=1, pady=20) Label(form_frame, text="密 码:", font=("宋体", 12), bg="#333333", fg="white") \ .grid(row=1, column=1, pady=20) Label(form_frame, text="确认密码:", font=("宋体", 12), bg="#333333", fg="white") \ .grid(row=2, column=1, pady=20) self.user = StringVar() self.key = StringVar() self.confirm = StringVar() Entry(form_frame, textvariable=self.user, bg="#e3e3e3", width=30) \ .grid(row=0, column=2, ipady=1) Entry(form_frame, textvariable=self.key, show="*", bg="#e3e3e3", width=30) \ .grid(row=1, column=2, ipady=1) Entry(form_frame, textvariable=self.confirm, show="*", bg="#e3e3e3", width=30) \ .grid(row=2, column=2, ipady=1) form_frame.pack(fill=X, padx=20, pady=10) # 按钮frame btn_frame = Frame(self.reg_frame, bg="#333333") self.btn_quit = Button(btn_frame, text="取消", bg="lightgreen", fg="black", width=15, font=('黑体', 11), command=self.quit_func).pack(side=LEFT, ipady=3) self.btn_reg = Button(btn_frame, text="注册", bg="lightblue", fg="black", width=15, font=('黑体', 11), command=self.reg_func).pack(side=RIGHT, ipady=3) btn_frame.pack(fill=X, padx=20, pady=20) self.reg_frame.mainloop()
上面两个界面使用的是python tkinter,写了这两个之后发现代码量大而且想要制作精美的用户界面也较为繁琐(可能是我太菜了),所以我选择了使用另一个工具。使用PyQt5制作MomoTalk沉浸式对话软件的对话软件:
1. 跨平台性: PyQt5是一个跨平台的GUI工具包,可以在多种操作系统上运行,包括Windows、macOS和Linux。这意味着你可以通过一次开发就能够在不同的操作系统上提供一致的用户体验,无需单独为每个平台开发不同的版本。
2. 丰富的功能: PyQt5提供了丰富的功能和组件,可以轻松实现各种复杂的界面设计和交互功能。无论是文本输入框、按钮、菜单还是图形绘制,PyQt5都提供了强大的支持,使得你可以创建出吸引人且功能完善的沉浸式对话软件。
3. Python语言优势: PyQt5是基于Python语言的,而Python以其简洁易读的语法而闻名。使用Python开发可以提高开发效率,减少开发周期,同时也方便进行代码的维护和扩展。
综上所述,选择使用PyQt5制作MomoTalk沉浸式对话软件是一个理想的选择,它能够提供良好的跨平台性、丰富的功能、优秀的性能和便捷的开发体验,可以快速实现设计创意并为用户提供优质的使用体验。
在配置开发环境的时候出现了众多问题,概括来说就是安装问题,比如在终端中显示安装成功但是找不到文件具体位置,具体解决方法就是先下面这段简单的代码,如果运行成功就能确定pyqt5安装成功,之后顺着解释器的位置找就可以找找到designer.exe(我发现我的电脑装了两个python所以找到安装的designer花了很长时间)
import sys from PyQt5.QtWidgets import QApplication, QLabel if __name__ == "__main__": app = QApplication(sys.argv) label = QLabel("Hello PyQt5") label.setGeometry(0,0,300,200); label.show() sys.exit(app.exec_())
然后添加外部工具
启动pyqt5
暂时制作的登录界面
后续会添加数据库等