用树莓派创建人机交互界面@RPi HMI

使用python编程

导入tkinter库

# 在这里写上你的代码 :-)
import tkinter as tk
from tkinter import messagebox

root = tk.Tk()
root.title("zhx_jm")
'''root.attributes("-fullscreen",True)'''
root.geometry("300x100+300+100")## 注意这里是“长x宽+x轴+y轴”
btn1 = tk.Button(root, text="One button to click")
'''btn1["text"]="Click_it"'''
btn1.pack()

def test(e):
    '''a window'''
    messagebox.showinfo("Welcome to HMI","You Clicked.")

btn1.bind("<Button-1>",test)
root.mainloop()

其中,第一行启动tk库,开始图形编辑,第二行启动tkinter的messagebox为了出现弹窗。

用root创建窗口root=tk.Tk()和最后一句root.mainloop()配套使用。
然后设置窗口标题窗口大小,也可以全屏,但是全屏无法退出,目前没找到退出方法。

在窗口里创建按钮,并命名。命名有两种方法,分别是运行的这句和注释的下句。
创建按钮需要和xxx.pack()配套使用。
设置弹窗,弹窗标题和内容。

弹窗要和按钮绑定。

第二段程序:菜单和目录

import tkinter as tk
from tkinter import Menu


class GUI:

    def __init__(self):
        self.root = tk.Tk()
        self.root.title('演示窗口')
        self.root.geometry("500x200+1100+150")
        # 创建主菜单实例
        self.menubar = Menu(self.root)
        # 显示菜单,将root根窗口的主菜单设置为menu
        self.root.config(menu=self.menubar)
        self.interface()

    def interface(self):
        """"界面编写位置"""
        # 在 menubar 上设置菜单名,并关联一系列子菜单
        self.menubar.add_cascade(label="文件", menu=self.papers())
        self.menubar.add_cascade(label="查看", menu=self.about())

    def papers(self):
        """
        fmenu = Menu(self.menubar): 创建子菜单实例
        tearoff=1: 1的话多了一个虚线,如果点击的话就会发现,这个菜单框可以独立出来显示
        fmenu.add_separator(): 添加分隔符"--------"
        """
        fmenu = Menu(self.menubar, tearoff=0)
        # 创建单选框
        for item in ['新建', '打开', '保存', '另存为']:
            fmenu.add_command(label=item)

        return fmenu

    def about(self):
        amenu = Menu(self.menubar, tearoff=0)
        # 添加复选框
        for item in ['项目复选框', '文件扩展名', '隐藏的项目']:
            amenu.add_checkbutton(label=item)

        return amenu


if __name__ == '__main__':
    a = GUI()
    a.root.mainloop()

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

第三段程序:多线程运行

要让按钮点击时其它功能可以正常运行,必须使用多线程。

import tkinter as tk
import threading  # 导入多线程模块


class GUI:

    def __init__(self):
        self.root = tk.Tk()
        self.root.title('演示窗口')
        self.root.geometry("500x200+100+150")
        self.interface()

    def interface(self):
        """"界面编写位置"""
        self.Button0 = tk.Button(self.root, text="确定", command=self.start)
        self.Button0.grid(row=0, column=0)

        self.w1 = tk.Text(self.root, width=80, height=10)
        self.w1.grid(row=1, column=0)

    def event(self):
        '''按钮事件,一直循环'''
        a = 0
        while True:
            a += 1
            self.w1.insert(1.0, str(a)+'\n')
            print(a)

    def start(self):
        T1 = threading.Thread(name='t1', target=self.event, daemon=True)  # 子线程
        T1.start()  # 启动


if __name__ == '__main__':
    a = GUI()
    a.root.mainloop()

引用文献:https://blog.csdn.net/qq_45664055/article/details/117625146感谢!


  1. mermaid语法说明 ↩︎

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐