|
发表于 2021-5-2 22:29:16
|
显示全部楼层
本楼为最佳答案
 - from tkinter import Button, Entry, Frame, Label, Tk
- class UiLogin:
- def setup_ui(self, parent: Tk) -> None:
- """设置界面,包括两部分,上面的输入部分和下面的控制部分。"""
- self._build_input_field(parent)
- self._build_control_pad(parent)
- self._config_window(parent) # 设置界面大小和标题
- def _build_input_field(self, parent: Tk) -> None:
- """设置上面的输入部分,包括了两个标签和两个输入框,输入框分别命名为
- name_field和pwd_field。
- """
- frame = Frame(parent) # 上面部分的容器,用于存储标签和输入框控件
- frame.grid(row=0, column=0, sticky="nesw")
- Label(frame, text="姓名:").grid(row=0, column=0, padx=5)
- Label(frame, text="密码:").grid(row=1, column=0, padx=5)
- self.name_field = Entry(frame) # 用户名输入框
- self.name_field.grid(row=0, column=1, pady=10)
- self.pwd_field = Entry(frame) # 密码输入框
- self.pwd_field.grid(row=1, column=1, padx=10)
- def _build_control_pad(self, parent: Tk) -> None:
- """设置下面的控制部分,包括两个按钮,分别命名为btn_login和btn_quit。"""
- frame = Frame(parent) # 下面部分的容器,用于存储两个按钮
- frame.grid(row=1, column=0)
- self.btn_login = Button(frame, text="登录")
- self.btn_login.pack(side="left", padx=10)
- self.btn_quit = Button(frame, text="退出")
- self.btn_quit.pack(side="left", padx=10, pady=10)
- @staticmethod
- def _config_window(parent: Tk) -> None:
- """设置主窗口的标题和是否允许缩放。"""
- parent.title("登录") # 修改标题
- parent.resizable(False, False) # 禁止缩放
- def main():
- root = Tk() # 创建主窗口
- ui = UiLogin() # 实例化UI对象
- ui.setup_ui(root) # 把各个部分的组件添加到主界面上然后设置主界面的属性(大小、标题)
- root.mainloop() # 启动事件循环,展示主界面
- if __name__ == "__main__":
- main()
复制代码 |
|