一、Remi前言

remi原项目地址 remi中文翻译项目

中文翻译由tem2021 (github.com)Lightspace260 (github.com)共同完成(尚未完工)

介绍:Remi是一个独立的Python GUI库,只有不到100K的源代码,不需要精通HTML知识就能轻松写出交互性强的网页GUI界面。这个项目小巧轻量,适合快速部署一些小型项目,也适合爱折腾的极客们使用。它可以轻松帮助我们搭建小型网页,帮助小白更好的理解前端知识。

总的来说几大特点:

  • 轻量级的部署,源代码仅100K左右,不需要大型的依赖,项目部署非常迅速便捷
  • 无需精通HTML,对于前端小白也能轻松部署网页项目
  • 有极大的灵活性

写这一系列的教程目的非常简单,国内没有类似的教程或文档,虽然这对于大佬们这个项目分分钟掌握,但是对于小白来说这个项目确实是一个很好的实战练手项目.

我自己也是个前端小白,希望能在写这系列教程的过程中能有所心得。

二、安装Remi

获取一个稳定的版本:

1
pip install remi

获取一个有更多更新的实验版本 下载 或者直接从项目git

1
python setup.py install

或者直接使用pip安装

1
pip install git+https://github.com/dddomodossola/remi.git

image-20210802154515388

测试自己是否安装地正确且完整:

测试实验脚本 (从github下载 https://github.com/dddomodossola/remi/blob/master/examples/widgets_overview_app.py):

1
python widgets_overview_app.py

需要注意的是remi兼容Python 2.7和Python 3.X,注意兼容性差别

测试脚本效果如下:

screenshot

三、Hello World

先看代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# -*- coding:utf-8 -*-
import remi.gui as gui
from remi import start, App
#引入remi库

class MyApp(App):#创建MyApp类
def __init__(self, *args):#初始化
super(MyApp, self).__init__(*args)

def main(self):#主程序
container = gui.VBox(width=120, height=100)#设置容器宽度为120,高度为100
self.lbl = gui.Label('Hello world!')#创建标签“Hello World”
self.bt = gui.Button('Press me!')#创建按钮“Press me!”

# 为鼠标点击按钮创造一个监听事件
self.bt.onclick.do(self.on_button_pressed)

# 添加部件
container.append(self.lbl)
container.append(self.bt)

# 返回到根部件
return container

# 鼠标点击按钮的事件
def on_button_pressed(self, widget):
self.lbl.set_text('Button pressed!')
self.bt.set_text('Hi!')

#开启服务器
start(MyApp)

值得注意的是,最后开启服务器的端口是可以设置的

1
start(MyApp, address='0.0.0.0', port=8081)

address是你设置的IP地址,port即为端口,具体对于start()函数的参数讨论,将在下次进行.

image-20210802155505112

image-20210802155351968