1 說明:
=====
1.1 如果不會web前端的html、JavaScript、CSS的知識怎麼辦?無所不能的python可以做到。
1.2 Remi是一個用於Python應用程式的GUI庫,它將應用程式的介面轉換為HTML,以便在Web瀏覽器中呈現。
2 準備:
=====
2.1 官網地址:
https://github.com/dddomodossola/remihttps://remi.readthedocs.io/en/latest/
2.2 環境:
華為膝上型電腦、深度deepin-linux作業系統、谷歌瀏覽器、python3.8和微軟vscode編輯器。
2.3 安裝:
pip install remi#本機安裝sudo pip3.8 install remisudo pip3.8 install -i /file/2020/07/12/20200712152314_1939.jpg remi
3 Hello world:
==========
3.1 程式碼:註釋版
import remi.gui as guifrom remi import start, App#定義類class MyApp(App): def __init__(self, *args): super(MyApp, self).__init__(*args)#以上3行程式碼,固定初始化 def main(self): #例項化一個VBox,大小設定 wid = gui.VBox(width=300, height=200) #視窗的標籤label=顯示文字,大小比例法設定 # 注意\\n代表換行,但需要配合style={"white-space":"pre"},才起作用 #preserves newline==保留換行符 self.lbl = gui.Label('Hello\\n World', width='80%', height='50%',style={"white-space":"pre"}) #按鈕和名稱、大小設定,支援中文 self.bt = gui.Button('Press me=點選我!', width=200, height=30) #繫結按鈕的點選事件,呼叫函式 self.bt.onclick.do(self.on_button_pressed) #adding the widgets to the main container #將小部件新增到主容器wid,有時候上面例項化用container=主容器 wid.append(self.lbl) wid.append(self.bt) return wid # listener function==監聽功能 #呼叫點選按鈕函式;emitter==發射器 def on_button_pressed(self, emitter): self.lbl.set_text('Hello World!') if __name__ == "__main__": # starts the webserver # 主要引數 # start(MyApp,address='127.0.0.1', port=8081, multiple_instance=False,enable_file_cache=True, update_interval=0.1, start_browser=True) #start(MyApp, debug=True, address='0.0.0.0', port=0) #本機測試地址改動無效,為預設地址 start(MyApp, debug=True) #埠指定無效,也不是預設8081,估計本機埠已經被佔用
3.2 操作和效果:
4 Bootstrap:
=========
4.1 程式碼:bootstrap.py
5 tabbox:
=======
5.1 程式碼:
import remi.gui as guifrom remi import start, Appclass MyApp(App): def __init__(self, *args): super(MyApp, self).__init__(*args) def main(self): #按鈕 b1 = gui.Button('Show second tab', width=200, height=30) #表格框 tb = gui.TabBox(width='80%') tb.append(b1, 'First') b2 = gui.Button('Show third tab', width=200, height=30) #tb.add_tab(b2, 'Second', None) tb.add_tab(b2, 'Second') b3 = gui.Button('Show first tab', width=200, height=30) #tb.add_tab(b3, 'Third', None) tb.add_tab(b3, 'Third') #3種方法 b1.onclick.do(self.on_bt1_pressed, tb, b2) b2.onclick.do(self.on_bt2_pressed, tb, 'Third') b3.onclick.do(self.on_bt3_pressed, tb, 0) return tb #按鈕功能的定義,3種功能 def on_bt1_pressed(self, widget, tabbox, refWidgetTab): tabbox.select_by_widget(refWidgetTab) def on_bt2_pressed(self, widget, tabbox, refWidgetTabName): tabbox.select_by_name(refWidgetTabName) def on_bt3_pressed(self, widget, tabbox, tabIndex): tabbox.select_by_index(tabIndex)if __name__ == "__main__": #網頁標題,standalone=False預設是不允許 start(MyApp, title="Tab Demo=表格例子", standalone=False)
5.2 操作和效果圖:
6standalone:
======
6.1 程式碼: mian.py
from remi import start, App#將 bootstrap.py指令碼放在本程式碼mian.py同一個目錄下from bootstrap import MyAppif __name__ == "__main__": start(MyApp, standalone=True)
6.2 程式碼:bootstrap.py=4.1所指定程式碼:
6.3注意啟動網頁伺服器預設為不啟動(false),需要啟動則為standalone=True。
6.4 操作和效果圖:
7附一張gif:
===自己整理並分享===
最新評論