- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用
- Kivy - Hello World
- Kivy - 應用生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 元件
- Kivy - 元件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 旋轉木馬
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 標籤頁面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 相機
- Kivy - 樹形檢視
- Kivy - reStructuredText
- Kivy - 操作欄
- Kivy - 播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控波紋
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫檢查
- Kivy - 效果
- Kivy - 輸入記錄器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 頁面佈局
- Kivy - 回收佈局
- Kivy - 佈局巢狀
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪製
- Kivy - 打包
- Kivy - 花園
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用和專案
- Kivy - 繪圖應用
- Kivy - 計算器應用
- Kivy - 計時器應用
- Kivy - 相機處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 元件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 模態檢視
Kivy 框架中的 ModalView 元件用於在父視窗上彈出對話方塊。ModalView 元件的行為類似於 Kivy 的 Popup 元件。事實上,Popup 類本身就是 ModalView 類的子類,具有一些額外的功能,例如具有標題和分隔符。
預設情況下,Modalview 的大小等於“主”視窗的大小。元件的 size_hint 預設值為 (1, 1)。如果您不希望您的檢視全屏顯示,可以使用小於 1 的 size_hint 值(例如 size_hint=(.8, .8)),或者將 size_hint 設定為 None 並使用固定大小屬性。
ModalView 類定義在 kivy.uix.modalview import ModalView 模組中。以下語句將生成一個 ModalView 對話方塊:
from kivy.uix.modalview import ModalView view = ModalView(size_hint=(None, None), size=(300, 200)) view.add_widget(Label(text='ModalView Dialog'))
與 Popup 一樣,當您單擊 ModalView 對話方塊外部時,它將被關閉。要阻止此行為,請將 auto-dismiss 設定為 False。
要使 ModalView 對話框出現,您需要呼叫其 open() 方法。
view.open()
如果 auto_dismiss 為 False,則需要呼叫其 dismiss() 方法來關閉它。
view.dismiss()
通常,open() 和 dismiss() 方法都在某個事件(例如按鈕的 on_press 事件)上呼叫。您通常在單擊父視窗上的按鈕時開啟 ModalView,並在單擊 ModalView 佈局中的按鈕時關閉它。
ModalView 事件
ModalView 在檢視開啟和關閉之前以及檢視開啟和關閉時發出事件。
on_pre_open - 在 ModalView 開啟之前觸發。當此事件觸發時,ModalView 尚未新增到視窗中。
on_open - ModalView 開啟時觸發。
on_pre_dismiss - 在 ModalView 關閉之前觸發。
on_dismiss - ModalView 關閉時觸發。如果回撥返回 True,則關閉操作將被取消。
示例
以下程式碼展示了一個易於實現的 ModalView 對話方塊示例。主應用程式視窗顯示一個按鈕標題“點選此處”。單擊時,將彈出一個模態對話方塊。
ModalView 透過將標籤和按鈕放在網格佈局中構建。在彈出視窗中,我們有一個標題為“確定”的按鈕。它的 on_press 事件繫結到 ModalView 物件的 dismiss() 方法,使其消失。
示例的完整程式碼如下:
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.modalview import ModalView
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.core.window import Window
Window.size = (720, 300)
class ModalViewDemoApp(App):
def showmodal(self, obj):
view = ModalView(
auto_dismiss=False, size_hint=(None, None),
size=(400, 100)
)
grid = GridLayout(cols=1, padding=10)
grid.add_widget(Label(
text='ModalView Popup', font_size=32,
color=[1, 0, 0, 1]
))
btn = Button(
text='ok', font_size=32,
on_press=view.dismiss
)
grid.add_widget(btn)
view.add_widget(grid)
view.open()
def build(self):
btn = Button(
text='click here', font_size=32,
on_press=self.showmodal,
pos_hint={'center_x': .5, 'center_y': .1},
size_hint=(.3, None), size=(200, 100)
)
return btn
ModalViewDemoApp().run()
輸出
當單擊主應用程式視窗上的按鈕時,將彈出 ModalView 對話方塊。