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

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

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

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

分享给朋友:

相关文章

为什么程序员不自己开发微信小程序这类似的东西赚钱?

为什么程序员不自己开发微信小程序这类似的东西赚钱?

你如果有好的想法是可以挣钱的 首先大家说的个人资质限制确实多,也不建议直接拿个人资质去用小程序盈利,因为很麻烦 我说一下我的大体操作: 1.首先去申请个体户,这个可以用住宅来注册申请,而且速度很快就几天就下来了,经营类目主要是互联网销售这些…

为什么苹果贵没人喷,华为贵一群人喷?

苹果: 6:¥5288,6s:¥5288,7:¥5288,8:¥5288,XR:¥6299,11:¥5499,12:¥5999,13:¥5999,14:¥5999,15:¥5999,16:¥5999 华为: P8:¥2888,P9:¥298…

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

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

拼多多,怎么就成为了年轻人的「赛博菜市场」?

拼多多,怎么就成为了年轻人的「赛博菜市场」?

可惜你不在拼多多买水果蔬菜,很难一句话跟你解释,我只能笨拙的用经历来慢慢讲。 我们公司有微波炉,同事们几乎都是自己带饭来上班,便当荤素搭配、水果零食;都是好看又好吃。 我自己本来就不喜欢外卖,当然也加入了带饭大军: 直到某一天深夜我闲着…

如何判断 Java 工程师的基础知识是否扎实?

我来给你出几道大题,能答对70%,你就算基础扎实了。 第一部分 Java基础(27)1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法3. 引用类型:…

如何看待 Luv Letter 表示影视飓风专业性实在是让人失望?

一点儿新进展,另外以下有部分需要关注 对于统一变量的问题。这个我在对比上面有写小字解释,我在一开始使用ffmpeg来控制变量。但是发现了不少问题,比如因为遗留bug,会强制将非整数帧的素材转码为VFR导致无法正确帧间对比,因此不考虑,同时尽…

发表评论

访客

看不清,换一张

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