|
- import time
-
- # 导入CreateQGUI模块
- from qgui import CreateQGUI, MessageBox
- # 【可选】导入自定义导航栏按钮模块、GitHub导航栏模块
- from qgui.banner_tools import BaseBarTool, GitHub, AIStudio
- # 【可选】一次性导入所有的主界面工具模块
- from qgui.notebook_tools import *
- # 【可选】导入占位符
- from qgui.manager import QStyle, HORIZONTAL
-
-
- def click(args: dict):
- MessageBox.info("要开始啦~")
- # 证明一下自己被点到了
- print("你点到我啦~")
- # 通过ChooseFileTextButton(name="文件选择")中预先设置的name参数,使用get方法即可获取对应的输入框信息
- print("你选择的文件是:", args["文件选择"].get())
- # 当然也可以通过name参数来设置对应的内容,使用set方法即可完成设置
- print("保存位置修改为“快看,我被修改啦”", args["保存位置"].set("快看,我被修改啦"))
- # 即使没有指定name,我们照样可以拿到所有的小工具情况
- for arg, v_fun in args.items():
- print("自定义组件Name:", arg, "状态:", v_fun.get())
-
- # 若我们绑定了进度条,那么每当需要设置进度的时候,通过args["进度条"].set(当前进度)来进行设置吧,倒吸进度条也是可以哒
- for i in range(1, 101):
- time.sleep(0.01)
- args["进度条"].set(i)
- # 增加打印间隔
- if i % 20 == 0:
- print("当前进度", i)
- MessageBox.warning(text="给个评价吧亲~")
- # 也可以在终端中打印组件,顺便绑定用户调研函数
- q_gui.print_tool(RadioButton(["满意", "一般", "你好垃圾啊"], title="体验如何?", name="feedback", bind_func=feedback))
- # 甚至打印图片
- from qgui import RESOURCES_PATH
- q_gui.print_image(os.path.join(RESOURCES_PATH, "demo/panda.jpg"))
-
-
- def feedback(args: dict):
- # 用户调研Callback
- info = args["feedback"].get()
- if info == "满意":
- print("么么哒")
- elif info == "一般":
- print("啊啊啊,告诉GT哪里没做好吧")
- else:
- print("以后漂流瓶见吧,拜拜!")
-
-
- def bind_dir(args: dict):
- # 获取所选择文件所在的文件夹路径
- path = os.path.dirname(args["文件选择"].get())
- # 可以通过name参数来设置对应的内容,使用set方法即可完成设置
- args["保存位置"].set(path)
- print("保存位置已自动修改为:", path)
-
-
- def go_to_first_page(args: dict):
- args["QGUI-BaseNoteBook"].set(0)
-
-
- # 创建主界面
- q_gui = CreateQGUI(title="一个新应用", # 界面标题
- tab_names=["主控制台", "选择按钮", "其他小工具"], # 界面中心部分的分页标题 - 可不填
- style=QStyle.default) # 皮肤
-
- # 在界面最上方添加一个按钮,链接到GitHub主页
- q_gui.add_banner_tool(GitHub(url="https://github.com/QPT-Family/QGUI"))
- # 也可以是AI Studio
- q_gui.add_banner_tool(AIStudio(url="https://aistudio.baidu.com/aistudio/personalcenter/thirdview/29724"))
- # 要不试试自定义Banner按钮,在大家点击它时触发刚刚定义的click函数,并向它传递其他组件的情况
- q_gui.add_banner_tool(BaseBarTool(bind_func=click, name="一个新组件"))
-
- # 在主界面部分添加一个文件选择工具吧,并在选择文件后自动变为文件所在的路径
- q_gui.add_notebook_tool(ChooseFileTextButton(name="文件选择", bind_func=bind_dir))
- # 再加个文件夹选择工具
- q_gui.add_notebook_tool(ChooseDirTextButton(name="保存位置"))
- # 当然也可以来个输入框
- q_gui.add_notebook_tool(InputBox(name="我是个木有感情的输入框"))
- # 想要加一个 进度条 和 运行按钮 而且俩要水平方向排列该如何做?
- # 试试HorizontalToolsCombine,它可以接受一组工具并将其进行水平排列
- # 这里我们也为RunButton绑定click函数
- run_menu = HorizontalToolsCombine([Progressbar(name="进度条"),
- RunButton(bind_func=click)],
- text="试试HorizontalToolsCombine,它可以接受一组工具并将其进行水平排列")
- q_gui.add_notebook_tool(run_menu)
-
- # 第二页 - 复选框和单选框
- # 使用VerticalFrameCombine可以将他们在垂直方向快速组合,它们会从左到右按顺序排列
- combine_left = VerticalFrameCombine([CheckButton(options=[("选择1", 0), ("选择2", 1), ("选择3", 0)]),
- CheckToolButton(options=[("选择1", 0), ("选择2", 1), ("选择3", 0)]),
- CheckObviousToolButton(options=[("选择1", 0), ("选择2", 1), ("选择3", 0)]),
- ToggleButton(options=("开", 1))],
- tab_index=1,
- text="使用VerticalFrameCombine可以将他们在垂直方向快速组合,它们会从左到右按顺序排列")
- q_gui.add_notebook_tool(combine_left)
- # 设置title参数后会为其增加标题
- combine_right = VerticalFrameCombine([RadioButton(["选择1", "选择2", "选择3"], tab_index=1),
- RadioToolButton(["选择1", "选择2", "选择3"], tab_index=1),
- RadioObviousToolButton(["选择1", "选择2", "选择3"], tab_index=1)],
- title="右侧的复选框")
- q_gui.add_notebook_tool(combine_right)
-
- # 第三页
- q_gui.add_notebook_tool(Label(text="这只是个简单的Label组件", alignment=RIGHT + TOP, tab_index=2))
- q_gui.add_notebook_tool(Slider(default=4, tab_index=2))
- q_gui.add_notebook_tool(Combobox(options=["选择1", "选择2", "选择3"], tab_index=2))
- q_gui.add_notebook_tool(BaseButton(bind_func=go_to_first_page, text="回到首页", tab_index=2))
-
- # 左侧信息栏
- # 简单加个简介
- q_gui.set_navigation_about(author="GT",
- version="0.0.1",
- github_url="https://github.com/QPT-Family/QGUI",
- other_info=["欢迎加入QPT!"])
- # 也可以加一下其他信息
- q_gui.set_navigation_info(title="随便写段话", info="除了QGUI,你还可以试试例如AgentQGUI这样同样简单的GUI框架")
- print("小Tips:占位符可以被Print,不信你看HORIZONTAL的描述被打印了出来->", HORIZONTAL)
-
- # 跑起来~切记!一定要放在程序末尾
- q_gui.run()
|