首頁>技術>

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:

===自己整理並分享===

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • APP分層架構設計隨想