PyCharm 2024.1.1 构建GUI用户界面

PyCharm 是什么

-PyCharm是一种由JetBrains开发的Python集成开发环境(IDE)。它提供了代码编辑、调试、代码分析、版本控制等一系列功能,可以帮助开发者更高效地开发和管理Python项目。PyCharm具有智能代码补全、语法高亮、代码重构、自动格式化等功能,同时还可以与常用的Python框架和工具进行集成,如Django、Flask、Pytest等。总而言之,PyCharm是一款功能强大的Python开发工具

参考资料

一些准备

——————————————————————————————————————————————

-先打开官网,点击下载,往下滑,找到windows版开源免费
如果实在要用上边的(反正我觉得没必要,python就够了)还想白嫖
2024激活码在评论区(主要是太长了

在这里插入图片描述

-好,我们默认下好了,打开安装包
点击下一步

在这里插入图片描述

-设置下安装路径
点击下一步

在这里插入图片描述

-注意PATH勾选

在这里插入图片描述

-等待安装

在这里插入图片描述

-重启(啊啊啊,我得保存一下啊)


安装好了

-TkinterPython 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
打开PC,新建项目
进入init.py的文件下输入#encoding:utf-8__version__ = "v0.1.0"记录版本信息
在lib根目录下新建fz文件,编写 docopt 文档注释
docopt会校验Usage内的命令格式,如 clidemo cmdA valueA 中,cmdA如果在命令行中出现 ,则为 True,否则为False,对应数值或字符串,否则为None
docopt校验输入的命令格式中,不存在Usage定义的格式,则会提示错误,并显示使用方法
Tips:可能会报错,属于正常现象

#encoding:utf-8""" CLI Demo Tool
Usage:
    clidemo cmdA <valueA>
    clidemo cmdB paramB <valueB> 

Options:
    -h --help       Show Help doc.
    -v --version    Show Version.
"""

-pycharm窗口情况

在这里插入图片描述

-编前测试:
打开 cmd 输入python -m tkinter
测试有没有安装成功,一般python安装时自带
如果出现以下窗口,说明安装成功(电脑系统不同,窗口样式不同,但大致差不多)

在这里插入图片描述


编程部分

-导入tk库

import tkinter

正确tk使用方法~
创建一个GUI程序

  • 导入 Tkinter 模块
  • 创建控件
  • 指定这个控件的 master, 即这个控件属于哪一个
  • 告诉 GM(geometry manager) 有一个控件产生了。
# CSDN-熟
import tkinter
import tkinter as tk   # 导入tkinter库

app = tkinter.Tk()     # 让窗口等待与用户的交互
app.mainloop()         # 返回 循环

在这里插入图片描述

  • tk窗口

在这里插入图片描述

也可以自定义大小与标题

# CSDN-熟
import tkinter
import tkinter as tk                # 导入tkinter库

app = tkinter.Tk()                  # 让窗口等待与用户的交互
app.title(app, 'EXOS-CSDN -熟')     # 设置标题
app.geometry('500x500')             # 大小
app.mainloop()                      # 返回 循环

在这里插入图片描述

Tkinter 组件

名称描述
Button按钮控件;在程序中显示按钮。
Canvas画布控件;显示图形元素如线条或文本
Checkbutton多选框控件;用于在程序中提供多项选择框
Entry输入控件;用于显示简单的文本内容
Frame框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label标签控件;可以显示文本和位图
…………

-以此类推,我们可以写出一个标准的用户界面
一个登录系统(不墨迹,上代码)

import tkinter as tk
from tkinter import messagebox
from  Pillow import ImageTk
# CSDN -熟

sql = []

app = tk.Tk()
app.title('EXOS >> 个人')
app.geometry('500x500')

canva = tk.Canvas(app, width=700, height=500)
image_f = ImageTk.PhotoImage(file = 'perple.gif')
image = canvas.create_img(0, 0, anchor='nw', image=image_f)
canva.pack()

Name_lable = tk.Label(app, text='User', font=(16))
Email_lable = tk.Label(app, text='Email', font=(16))
Password_lable = tk.Label(app, text='Password', font=(16))
Name_lable.place(x=300, y=500)
Email_lable.place(x=300, y=500)
Password_lable.place(x=300, y=511)

nameval = tk.StringVar()
passwordval = tk.StringVar()
Name_entry = tk.Entry(app, textvariable=nameval, font=(12))
Email_entry = tk.Entry(app, textvariable=email, font=(12))
Password_entry = tk.Entry(app, textvariable=passwordval, show="·", font=(12))
Name_entry.place(x=400, y=520)
Email_entry.place(x=400, y=520)
Password_entry.place(x=400, y=560)

def sign_in_fun() :
    user_si_name = name_entry.get()
    user_si_psw = psw_entry.get()
    if user_si_name in success:
        i = success.index(user_si_name)
        if success[i + 1] == user_si_pass:
            tk.messagebox.showinfo(title='EXOS >> 登录信息', message="登录成功")
        else:
            tk.messagebox.showinfo(title='EXOS >> 登录信息', message="密码错误")

    else:
        res = tk.messagebox.askquestion(title='EXOS >> 登录信息', message="注意:用户名不存在,是否注册账号")
        if res == 'yes':
            sing_in_fun()
        else:
            pass


def sign_up_fun() :
    singn_up_w = tk.Tk()
    singn_up_w.title('EXOS >> 个人')
    singn_up_w.geometry('500x500')
    up_name_l = tk.Label(singn_up_w, text='User', font=(12))
    up_name_l = tk.Label(singn_up_w, text='Email', font=(12))
    up_name_l = tk.Label(singn_up_w, text='Password', font=(12))
    up_name_l = tk.Label(singn_up_w, text='Confirm Password', font=(12))
    su_name_entry.place(x=270, y=50)
    su_email_entry.place(x=270, y=150)
    su_pass_entry.place(x=270, y=150)
    su_cpass_entry.place(x=270, y=250)

    def su_conf() :
        su_user = su_name_entry.get()
        su_email = su_email_entry.get()
        su_psw = su_pass_entry.get()
        su_cpsw = su_cpass_entry.get()
        if su_psw == su_cpsw:
            tk.messagebox.showinfo(title='EXOS >> 注册', message='注册成功')
            success_app(su_user)
            success_app(su_psw)
            singn_up_w.destroy()
        else:
            tk.messagebox.showinfo(title='EXOS >> 注册', message='密码错误')

    def su_cancel_b():
        result = tk.messagebox.askquestion(title="EXOS >> 放弃注册", message="是否放弃注册")
        if result == "yes":
            singn_up_w.destroy()
        else:
            pass

    su_confirm_button = tk.Button(singn_up_w, text="Sign up", command=su_conf_b)
    su_cancle_button = tk.Button(singn_up_w, text="Cancel", command=su_cancel_b)
    su_confirm_button.place(x=170, y=320)
    su_cancle_button.place(x=365, y=320)

signin_button = tk.Button(app, text='SING IN', command=sign_in_fun)
signup_button = tk.Button(app, text='SING IN', command=sign_up_fun)
signin_button.place(x=350, y=590)
signup_button.place(x=460, y=590)

app.mainloop()

——————————————————————————————————————————————

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐