1. 程式人生 > >kivy學習筆記-轉到新介面之兩種方法

kivy學習筆記-轉到新介面之兩種方法

修改或切換應用程式介面顯示的Widgets方法如下例程(在上一篇筆記中程式碼的基礎上擴充套件),具體方法和說明見程式碼中的註釋:

MyForm:        # 頂級GUI部件類
<MyForm>:      # 定義MyForm類
    orientation:"vertical"    # 定義orientation屬性的值
    text_input:text_box       # 定義用於外部引用的名稱,指向id為text_box的GUI部件

    BoxLayout:                # 定義子GUI部件
        height:"40dp"         # 高度
        size_hint_y:None      # 縱向佔比

        TextInput:
            id:text_box
            size_hint_x:50  # 橫向佔比(多個同級GUI部件的佔比比例來分配實際大小)

        Button:
            text:"Button A"
            size_hint_x:20
            on_press:root.buttona_act()   # 指定Button被按下時執行的方法

        Button:
            text:"Button B"
            size_hint_x:20
            on_press:root.chg_widget()   # 呼叫轉換介面方法

        Button:
            text:"Button C"
            size_hint_x:10
            on_press:root.chg_widget2() # 呼叫另一種轉換介面方法

<
[email protected]
>: # 定義另一個Widgets Button: text:"Button D"
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.uix.label import Label
from kivy.factory import Factory

class MyForm(BoxLayout):  # 此處類定義雖然為空,但會將my.kv的GUI定義的相關“程式”引入,即相當於在此定義
    text_input = ObjectProperty()   # 在類中新增text_input屬性,對應kv檔案中用於外部引用的名稱,最終指向對應id的GUI部件
    def buttona_act(self):
        print(self.text_input.text) # 獲取text_input所指向GUI部件的text值,並列印到控制檯

    # 轉換介面方法1
    def chg_widget(self):
        self.clear_widgets()
        self.add_widget(Label(text='location')) # 新增程式生成的Widget

    # 轉換介面方法2
    def chg_widget2(self):
        self.clear_widgets()
        cur_wdgt = Factory.MyForm2()
        self.add_widget(cur_wdgt)        # 新增kv檔案中定義的Widget

class MyApp(App):         # 類名MyApp 在執行時正好自動載入對應的my.kv檔案
    pass

MyApp().run()

執行效果圖:

1.程式的初始介面圖

2.點選Button B後的程式介面圖:

3.點選Button C後的程式介面圖:


相關推薦

kivy學習筆記介面方法

修改或切換應用程式介面顯示的Widgets方法如下例程(在上一篇筆記中程式碼的基礎上擴充套件),具體方法和說明見程式碼中的註釋:MyForm: # 頂級GUI部件類 <MyForm&

學習筆記 Perl ->符號用法的解釋

col debug blog 列表 cnblogs .com password pop 用法 Perl ->符號的主要用法解釋 Perl ->符號第一種用法,就是解引用。 根據->後面跟的符號的不同,解不同類型的引用,->[]表示解數組引用,-

OpenTK學習筆記(2)-工作窗口的三方法創建方法(控制臺)

百度 ogr opened rgs 依據 想要 rds 窗口 gif 參考資料: 控制臺下類的形式創建:http://www.cnblogs.com/podolski/p/7406628.html 總結: 一、控制臺下類的形式創建 1.新建控制臺應用 2.連網執行Nug

Jmeter 跨線程組傳遞參數 方法

rgs 舉例 new 全局 div small jmeter 則表達式 ext 終於搞定了Jmeter跨線程組之間傳遞參數,這樣就不用每次發送請求B之前,都需要同時發送一下登錄接口(因為同一個線程組下的請求是同時發送的),只需要發送一次登錄請求,請求B直接用登錄請求的參數

Jmeter 跨線程組傳遞參數 方法

可能 spa 添加 all post edi 變量 sign 一個 終於搞定了Jmeter跨線程組之間傳遞參數,這樣就不用每次發送請求B之前,都需要同時發送一下登錄接口(因為同一個線程組下的請求是同時發送的),只需要發送一次登錄請求,請求B直接用登錄請求的參數即可,直到登

微信小程序--跳頁面常用的方法

avi mage site product 小程序 src bsp XML 兩種 一.bindtap="onProductsItemTap"綁定點擊跳轉事件 在.wxml文件中綁定 在.js文件中實現綁定事件函數 二.navigator標簽配合URL跳轉

java程式將漢字成拼音的方法-----------------第二方式

同樣需要下載pom檔案,匯入相應的jar包!!!!!! import net.sourceforge.pinyin4j.PinyinHelper;   import net.sourceforge.pinyin4j.format.HanyuPi

Windows遠端連線Linux介面方法

使用VNC連線,最簡單. 首先在linux端鍵入命令安裝vncserver #yum -y install vnc *vnc-server* 然後鍵入命令設定vncserver密碼 #vncpasswd 然後鍵入命令來檢視當前的vncserver埠 #vncserver 可以看

java程式將漢字成拼音的方法

1.使用pinyin4j將漢字轉成拼音,附件為pinyin4j的jar包  Java程式碼   import net.sourceforge.pinyin4j.PinyinHelper;   import net.sourceforge.piny

得到當前系統的儲檔案的方法

  一種方法是通過使用者態下winDBG偵錯程式。winDBG的命令.dump,可以通過核心除錯會話來讀取被除錯系統的狀態資訊和記憶體資料,並以正常的格式輸出到指定的檔案中。命令的格式為 .dump c:\mydump.dmp 如果希望得到完全記憶體轉儲,則需要在檔名前加上

Java中char 化為int 的方法

今天機試過程中遇到一個問題: 如何把 char ‘9’ 轉為 int 9, 大家應該知道,不能直接轉化,那樣得到是‘9’的Ascii. 如下面: public class IntAndCharConvertor { public static void main(Stri

DataGridView動態新增行的方法

DataGridViewRow row = new DataGridViewRow();DataGridViewTextBoxCell textboxcell = new DataGridViewTextBoxCell();textboxcell.Value = "aaa";row.Cells.Add(te

ASP.NET 動態靜態頁面的方法總結

1、建立MyConvert.cs類檔案 using System; //記得新增以下三引用 using System.Text; using System.Web; using System.IO; namespace

skew偏度計算方法

方法一:Datafram.skew(axis=0) 例程: data_frame2= pd.DataFrame({'A':[1,2,3,4],'b':[1,0,3,1]}) data_frame2.skew(axis = 0) Out[62]: A 0.000000

Python Click 學習筆記

col 輸出 小工具 方法 chm 好的 put name 回調 原文鏈接:Python Click 學習筆記 Click 是 Flask 的團隊 pallets 開發的優秀開源項目,它為命令行工具的開發封裝了大量方法,使開發者只需要專註於功能實現。恰好我最近在開發的一個小

Java基礎學習筆記八 Java基礎語法接口和多態

java cas 發現 過程 類類型 結果 覆寫 實例 new 接口 接口概念 接口是功能的集合,同樣可看做是一種數據類型,是比抽象類更為抽象的”類”。接口只描述所應該具備的方法,並沒有具體實現,具體的實現由接口的實現類(相當於接口的子類)來完成

Groovy學習筆記-Java 5特性支持

analyze port static ring leg break main uniq size 1.枚舉enum enum CoffeeSize{ SHORT, SMALL, MEDIUM, LARGE, MUG

springmvc學習筆記(13)-springmvc註解開發集合類型參數綁定

return 可擴展性 list .net items trac class javascrip lin springmvc學習筆記(13)-springmvc註解開發之集合類型參數綁定

python學習筆記(十一)函數

last 函數返回 traceback keep disco show 全局變量 not 默認參數 牛刀小試:   定義一個無參函數 1 >>> def myFirstFunc(): 2 ... print("Hello python

python學習筆記(十五)集合

head erro sdi pytho not in 註意 inter ren mod 集合:對應數學中的集合類型。集合中的元素是唯一,且無序的。 創建集合   方法一:使用{},註意python會自動刪除重復元素 >>> number = {1,2,3