当前位置:首页 > 每日看点 > 正文内容

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

卡卷网1年前 (2024-12-09)每日看点458

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、目标人群定位不同抖音:一二线城市,占比52%,大专学历以上,女性偏多。抖音以年轻群体居多。快手:三四线城市,占比64%,高中学历以下,男女更均衡。快手所覆盖的年龄段范围更广。2、内容创作的形式和深度不同抖音:偏深层,内容的装饰及表达更高...

打印速度慢,是不是打印机cpu不行?

打印速度慢,是不是打印机cpu不行?

打印机是机械设备,cpu内存硬盘它也有但这只是它的电控部分,打印机类似于汽车属于机电一体化设备和电脑不是一个类型的产品。很多人总是认为打印机和电脑是一类产品,实际上这是一个误区,电脑是it(Information Technology)信息...

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

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

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

中国芯片产量达1399亿颗,这意味着什么?

美国并不是没有明白人,只是特朗普不懂芯片产业的情况,冒冒失失在ZZ正确下,开启了对中国芯片的掐脖子,结果没掐死,反而让人练出了铁肺。芯片是所有科技产业的上游,美国原本在上游呆得很舒服,靠英伟达、AMD、德州仪器、高通等这些几十年霸主地位的公...

有哪些网站,一旦知道,你就离不开了?

有哪些网站,一旦知道,你就离不开了?

这六个网站,一旦用过,基本上是离不开了。都是我超爱的一些网站,基本上每天都用。1 地图生成器第一个,我要给大家推荐的是地图生成器。可以下载到各省,各市,各县的svg格式的地图素材。这些素材导入PPT中都是可以编辑的。可以单独更改颜色和轮廓。...

网易云音乐上看到过最触动的热评是什么?

网易云音乐上看到过最触动的热评是什么?

1.“昨天晚上洗澡的时候,我忘记拿毛巾了,喊了声妈妈帮我拿下毛巾,正当我伸出左手准备接毛巾的时候,我愣了一下,又换了右手。”希望你永远不会听懂这句话,永远都不要懂。——网易云热评《关键词》2.小时候跟着父亲去城里卖西瓜,害怕同学会看到我,就...

发表评论

访客

看不清,换一张

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