当前位置:首页 > 每日看点

用什么GUI平台开发高性能、美观性好的GUI?

卡卷网2年前 (2024-12-09)每日看点528

1. 安装基础库

使用Windows 11标题样式和主题自定义UI窗口库pywinstyles(github: github.com/Akascape/py-),结合python自带tkinter库设计一个报告GUI软件。

pip install pywinstyles # pywinstyles设置风格方式 pywinstyles.apply_style(window, style)

用什么GUI平台开发高性能、美观性好的GUI?  第1张

pywinstyles风格

2. 设计一个简单的Windwos风格的GUI报告软件


用什么GUI平台开发高性能、美观性好的GUI?  第2张

软件界面


# report.py import tkinter as tk import pywinstyles from tkinter import ttk def generate_report(sample_name, analysis_type): """模拟生信报告生成函数""" with open(f"{sample_name}_report.txt", "w") as f: # 写入表头 f.write(f"Sample Name\tAnalysis Type\n") # 写入内容 f.write(f"{sample_name}\t{analysis_type}\n") def on_selection_changed(event): """下拉框选择改变时触发事件""" global selected_value selected_value = combo_box.get() print(f"Selected value changed to: {selected_value}") # 创建主窗口 root = tk.Tk() # 应用mica主题 pywinstyles.apply_style(root, 'mica') label = tk.Label(root, text="mica风格界面") label.pack(pady=20) # 设置窗口标题 root.title("生信报告软件") # 设置窗口大小 root.geometry("800x600") # 内边距(水平方向)像素值 pad_x_value = 15 # 外边距(垂直方向)像素值 pad_y_value = 10 # 组件内部内边距 ipad_x_value = 5 # 组件外部外边距 ipad_y_value = 2 # 创建标签和输入框用于样本名称 # side设置边:tkinter.TOP(默认值)、tkinter.BOTTOM、tkinter.LEFT、tkinter.RIGHT # anchor设置锚点:tkinter.N(北,即顶部居中)、tkinter.NE(东北,即右上角)、tkinter.E(东,即右# 侧居中)、tkinter.SE(东南,即右下角)、tkinter.S(南,即底部居中)、tkinter.SW(西南,即左下 # 角)、tkinter.W(西,即左侧居中)、tkinter.NW(西北,即左上角)、tkinter.CENTER(居中) sample_name_label = tk.Label(root, text="样本名称:") sample_name_label.pack(anchor=tk.NW, side=tk.LEFT, padx=pad_x_value, pady=pad_y_value, ipadx=ipad_x_value, ipady=ipad_y_value) sample_name_entry = tk.Entry(root) sample_name_entry.pack(anchor=tk.NW,side=tk.LEFT, padx=pad_x_value, pady=pad_y_value, ipadx=ipad_x_value, ipady=ipad_y_value) # 创建标签和下拉菜单用于分析类型 analysis_type_label = tk.Label(root, text="报告类型:") analysis_type_label.pack(anchor=tk.NW, side=tk.LEFT, padx=pad_x_value, pady=pad_y_value, ipadx=ipad_x_value, ipady=ipad_y_value) style = ttk.Style() style.theme_use('clam') style.conp('TCombobox', font=('Arial', 12), fieldbackground='white', arrowcolor='blue') combo_box = ttk.Combobox(root, values=["WES报告", "WGS报告", "CNV-seq报告"]) combo_box.pack(anchor=tk.NW, side=tk.LEFT, padx=pad_x_value, pady=pad_y_value, ipadx=ipad_x_value, ipady=ipad_y_value) # 绑定事件处理函数 # 当使用Combobox的<<ComboboxSelected>>事件绑定函数后,在函数内部可以直接获取到改变后的值 combo_box.bind("<<ComboboxSelected>>", on_selection_changed) # 创建按钮用于生成报告 generate_button = tk.Button(root, text="生成报告", command=lambda: generate_report(sample_name_entry.get(), selected_value)) generate_button.pack(anchor=tk.NW,side=tk.LEFT, padx=pad_x_value, pady=pad_y_value, ipadx=ipad_x_value + 30, ipady=0) # 运行主循环 root.mainloop()

3. 测试结果

根据业务需求,可自行调整报告生成函数。

用什么GUI平台开发高性能、美观性好的GUI?  第3张

生成TXT文件结果

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3553.html

分享给朋友:

相关文章

为什么微服务一定要有网关?

为什么微服务一定要有网关?

网关 一句话总结,网关的作用是上浮公共逻辑,下沉差异逻辑。公共逻辑就是所有接口都需要做的事,比如权限校验,限流算法等,这样业务就只需要关心业务逻辑即可。下面是一个对比图: 当然除了一些公共逻辑外, 路由也是网关的核心功能,它可以进行流量…

开发了个小程序,咋推广呢?

要是开发了个小程序,想推广的话,可以先从自己的朋友圈子下手,让亲戚朋友都帮忙转发宣传,这样能先有点人气。 然后去一些跟你的小程序相关的论坛、社区啥的,发帖子介绍介绍,吸引有兴趣的人。 还能找些网红、博主合作,要是他们觉得你的小程序不错,帮忙…

为什么我感受不到 1500 元的手机比四五千的差?

我长期使用两千元左右的安卓机,一天接近8小时的重度手机使用者。 某天我突然想试试看传说中非常赛艇的苹果。狠了心,砸了钱。七千大样买了爱疯。 就这?什么辣鸡玩意。而且因为我一直更新软件,用了两年爱疯就卡了。并没有传说中的用四五年不卡。 用了这…

自媒体如何快速起步?

自媒体如何快速起步?

有两种经验,可供参考。 第一种是:现象级的爆火、爆款,这种情况捞到钱,实现财务自由的人并不多,但确实存在。只不过非要说清楚为什么这个账号可以火、可以短时间内赚到普通人一辈子赚不到的钱,他们自己也不一定能说清楚,因为赶上了风口(内外部情况)。…

你每天用来涨知识的手机应用程序有哪些?

你每天用来涨知识的手机应用程序有哪些?

经过深度使用和测评, 从100个APP中选出的这35个超实用的app,每一个都是最硬核最有料的涨知识神器!每天打开看看,能让你提神醒脑,眼界大开,成为朋友聚会上的话题王者! 先放上全部APP目录,有新闻资讯类、英语学习类、读书类、影视类…

如何进行 Elasticsearch 调优实践?

如何进行 Elasticsearch 调优实践?

面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s ,坑爹了。第一次搜索的…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。