在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ wxPython Dialog類
wxPython GUI構(gòu)建工具wxFormBuilder
wxPython StaticText類
WxPython教程
wxPython可??看翱?/span>
wxPython ComboBox & Choice類
wxPython FlexiGridSizer布局
wxPython入門(Hello World)
wxPython RadioButton & RadioBox類
wxPython拖放
wxPython HTMLWindow類
wxPython ToolBar類
wxPython GridBagSizer布局
wxPython Dialog類
wxPython布局管理
wxPython TextCtrl類
wxPython開發(fā)環(huán)境安裝
wxPython Slider類
wxPython CheckBox類
wxPython Major類
wxPython GridSizer布局
wxPython事件處理
wxPython SplitterWindow類
Menu Item, Menu & MenuBar類
wxPython Button控件
wxPython StaticBoxSizer布局
wxPython Guage類
wxPython Frame類
wxPython多文檔界面
wxPython Panel類
wxPython BoxSizer布局
wxPython繪圖API

wxPython Dialog類

雖然Dialog類對象將顯示像Frame,它通常被用作上的父框架的頂部上的彈出窗口。Dialog的目的是從用戶收集一些數(shù)據(jù)并將其發(fā)送到父frame。對話框 Dialog 可以模態(tài)(它阻止父幀)或無模式(對話框架可被繞過)。 ShowModal()方法顯示模態(tài)方式對話框frame,Show() 使得它無模式。
wxPython中有一些預(yù)配置對話框控件,如:MessageDialog,F(xiàn)ileDialog,F(xiàn)ontDialog類等。
wx.Dialog支持使用Sizers 僅僅作為一個(gè)wx.Frame對象。因此,定制的Dialog可設(shè)計(jì)。
wx.Dialog類的構(gòu)造函數(shù)如下常用的參數(shù) -
wx.Dialog(parent, id, title, pos, size, style) 

Dialog控件的默認(rèn)外觀顯示在標(biāo)題欄中只關(guān)閉對話框。但是,它可以用下面的風(fēng)格參數(shù)的組合進(jìn)行定制?

S.N. 參數(shù) & 描述
1

wx.CAPTION

對話框的文字說明
2

wx.DEFAULT_DIALOG_STYLE

相當(dāng)于wxCAPTION,wxCLOSE_BOX和wxSYSTEM_MENU的組合
3

wx.RESIZE_BORDER

顯示可調(diào)框架窗口的大小
4

wxSYSTEM_MENU

顯示系統(tǒng)菜單
5

wx.CLOSE_BOX

框架(frame)上顯示一個(gè)關(guān)閉
6

wx.MAXIMIZE_BOX

在對話框中顯示一個(gè)最大化框
7

wx.MINIMIZE_BOX

在對話框中顯示一個(gè)最小化框(frame)
8

wx.STAY_ON_TOP

確保對話框停留在所有其他窗口的頂部
9

wx.DIALOG_NO_PARENT

為防止產(chǎn)生無看管對話框。不推薦用于模態(tài)對話框
兩個(gè)事件由綁定器定義該類-
S.N.
事件和說明
1

EVT_CLOSE

當(dāng)用戶或編程對話框的關(guān)閉
2

EVT_INIT_DIALOG

When the dialog is being initialized

如上所述,對話的目的是收集數(shù)據(jù)并返回到父窗口。然而,一些有用的方法可用于 Dialog類。

S.N.
方法和說明
1

DoOK()

當(dāng)對話框中的OK按鈕被按下時(shí)調(diào)用
2

ShowModal()

顯示了在應(yīng)用程序模態(tài)方式的對話框
3

ShowWindowModal()

對話框只頂層父窗口的模式
4

EndModal()

ShowModal調(diào)用傳遞值結(jié)束一個(gè)對話框模式

一個(gè)預(yù)配置的對話框是MessageDialog。它用于顯示的一條或多條線用具有標(biāo)準(zhǔn)ID的按鈕的消息。 下面是對MessageDialog標(biāo)準(zhǔn)按鈕選擇列表。

S.N.
按鈕和說明
1

wx.OK

顯示OK按鈕
2

wx.CANCEL

顯示取消(Cancel)按鈕
3

wx.YES_NO

顯示“是”,“否”按鈕
4

wx.YES_DEFAULT

使Yes按鈕為默認(rèn)
5

wx.NO_DEFAULT

使No按鈕為默認(rèn)

6

wx.ICON_EXCLAMATION

顯示警告圖標(biāo)
7

wx.ICON_ERROR

顯示錯(cuò)誤圖標(biāo)
8

wx.ICON_HAND

同wx.ICON_ERROR
9

wx.ICON_INFORMATION

顯示一個(gè)信息圖標(biāo)
10

wx.ICON_QUESTION

顯示一個(gè)問題圖標(biāo)

MessageDialog

此聲明使用下面的構(gòu)造 -
wx.MessageDialog(parent, message, caption, style, pos) 

一個(gè)或多個(gè)消息參數(shù)要顯示文本的行,文字說明顯示在標(biāo)題欄。默認(rèn)style參數(shù)是wx.OK| wx.ECNRE。 其他樣式style參數(shù)允許消息框進(jìn)行定制。

wx.MessageBox是一個(gè)方便的功能,使用MessageDialog構(gòu)建代替消息框。

實(shí)例

下面給出的是對話的模式和無模式的行為簡單的演示。父窗口是wx.Frame對象帶有兩個(gè)按鈕。Click事件的第一個(gè)按鈕將顯示在模態(tài)的方式的對話框。因此,防止父窗口上的任何操作,直到對話框關(guān)閉。第二個(gè)按鈕,將顯示一個(gè)無模式對話框,這并不妨礙訪問父窗口。第三個(gè)按鈕會(huì)顯示一個(gè)消息框。

整個(gè)代碼如下 -
import wx
  
class MyDialog(wx.Dialog): 
   def __init__(self, parent, title): 
      super(MyDialog, self).__init__(parent, title = title, size = (250,150)) 
      panel = wx.Panel(self) 
      self.btn = wx.Button(panel, wx.ID_OK, label = "ok", size = (50,20), pos = (75,50))
		
class Mywin(wx.Frame): 
            
   def __init__(self, parent, title): 
      super(Mywin, self).__init__(parent, title = title, size = (250,150))  
      self.InitUI() 
         
   def InitUI(self):    
      panel = wx.Panel(self) 
      btn = wx.Button(panel, label = "Modal Dialog", pos = (75,10)) 
      btn1 = wx.Button(panel, label = "Modeless Dialog", pos = (75,40)) 
      btn2 = wx.Button(panel, label = "MessageBox", pos = (75,70)) 
      btn.Bind(wx.EVT_BUTTON, self.OnModal)
		
      a = btn1.Bind(wx.EVT_BUTTON, self.OnModeless) 
      print a 
      btn2.Bind(wx.EVT_BUTTON, self.Onmsgbox) 
      self.Centre() 
      self.Show(True) 
		
   def OnModal(self, event): 
      a = MyDialog(self, "Dialog").ShowModal() 
      print a 
		
   def OnModeless(self, event): 
      a = MyDialog(self, "Dialog").Show()
		
   def Onmsgbox(self, event): 
      wx.MessageBox("This is a Message Box", "Message" ,wx.OK | wx.ICON_INFORMATION)  
		
ex  =  wx.App() 
Mywin(None,'Dialog Demo - www.yiibai.com') 
ex.MainLoop()
上面的代碼產(chǎn)生下面的輸出 -



wx.TextEntryDialog

這個(gè)類的對象顯示一個(gè)文本字段,可定制的標(biāo)簽,提示用戶輸入以及兩個(gè)按鈕使用預(yù)定義樣式的對話框。
雖然這個(gè)對話框要求一行輸入,文本框可以通過使用TextCtrl風(fēng)格,如密碼和多進(jìn)行定制。
文本字段收集內(nèi)容,當(dāng)用戶點(diǎn)擊OK按鈕返回相應(yīng)值。TextEntryDialog構(gòu)造如下 -
wx.TextEntryDialog(parent, id, message, caption, value, style, pos) 

在對話窗口傳遞的消息參數(shù)要顯示的文字。caption 參數(shù)是要顯示在標(biāo)題欄的字符串。在文本框中默認(rèn)字符串值value參數(shù)。TextCtrl在對話框可以設(shè)置顯示密碼字符(wx.TE_PASSWORD)和/或多行(wx.TE_MULTILINE)。

TextEntry 類的其他方法如下列表中 -
S.N.
方法和說明
1

SetMaxLength()

設(shè)置用戶可以輸入到文本框最大字符數(shù)
2

SetValue()

設(shè)置文本框的值編程
3

GetValue()

返回該文本框的內(nèi)容
4

ShowModal()

顯示對話框模態(tài)。返回 wx.ID_OK 如果用戶確認(rèn)輸入,以及 wx.ID_CANCEL 如果對話框被拒絕

實(shí)例

在下面的例子中頂層幀示出了按鈕和一個(gè)只讀 TextCtrl 插件。
self.text = wx.TextCtrl(pnl, size = (250, 25),style = wx.TE_READONLY) 
self.btn1 = wx.Button(pnl, label = "Enter Text")
響應(yīng)按鈕點(diǎn)擊并調(diào)用 OnClick()函數(shù)。
self.Bind(wx.EVT_BUTTON, self.OnClick, self.btn1)
OnClick()函數(shù)顯示一個(gè) TextEntryDialog。
dlg = wx.TextEntryDialog(self, 'Enter Your Name','Text Entry Dialog')
對話框的返回值是 getValue()函數(shù)的值,并在頂層框架的TextCtrl對象中顯示。
if dlg.ShowModal() == wx.ID_OK: 
   self.text.SetValue("Name entered:"+dlg.GetValue())
完整的代碼如下 -
import wx 
 
class Mywin(wx.Frame): 
            
   def __init__(self, parent, title): 
      super(Mywin, self).__init__(parent, title = title,size = (300,200))  
         
      self.InitUI() 
         
   def InitUI(self):    
      self.count = 0 
      pnl = wx.Panel(self) 
      vbox = wx.BoxSizer(wx.VERTICAL) 
		
      hbox1 = wx.BoxSizer(wx.HORIZONTAL) 
      hbox2 = wx.BoxSizer(wx.HORIZONTAL) 
		
      self.text = wx.TextCtrl(pnl, size = (250, 25),style = wx.TE_READONLY) 
      self.btn1 = wx.Button(pnl, label = "Enter Text") 
      self.Bind(wx.EVT_BUTTON, self.OnClick, self.btn1) 
		
      hbox1.Add(self.text, proportion = 1, flag = wx.ALIGN_CENTRE) 
      hbox2.Add(self.btn1, proportion = 1, flag = wx.RIGHT, border = 10)
		
      vbox.Add((0, 30)) 
      vbox.Add(hbox1, flag = wx.ALIGN_CENTRE) 
      vbox.Add((0, 20)) 
      vbox.Add(hbox2, proportion = 1, flag = wx.ALIGN_CENTRE) 
		
      pnl.SetSizer(vbox) 
      self.Centre() 
      self.Show(True)
		
   def OnClick(self, e): 
      dlg = wx.TextEntryDialog(self, 'Enter Your Name','Text Entry Dialog') 
		
      if dlg.ShowModal() == wx.ID_OK: 
         self.text.SetValue("Name entered:"+dlg.GetValue()) 
      dlg.Destroy() 
                                    
ex = wx.App() 
Mywin(None,'TextEntry Demo - www.yiibai.com') 
ex.MainLoop()
上面的代碼產(chǎn)生下面的輸出 -



wx.FileDialog類

此類表示一個(gè)文件選擇對話框。它使用戶可以瀏覽文件系統(tǒng)并選擇要打開文件或保存。對話框的外觀是由操作系統(tǒng)特定的。

文件濾波器也可以應(yīng)用到只顯示指定擴(kuò)展名的文件。啟動(dòng)目錄和默認(rèn)的文件名也可以設(shè)置。
FileDialog的構(gòu)造函數(shù)的原型是這樣的 -
wx.FileDialog(parent, message, DefaultDir, DefaultFile, wildcard, style, pos, size) 

該消息表示將要顯示的文本。 DefaultDir是初始目錄。一個(gè)或多個(gè)類型的文件可以被設(shè)置為通過通配符參數(shù)所表示的文件的過濾器。

FileDialog定義風(fēng)格參數(shù) -
S.N.
參數(shù)和說明
1

wx.FD_DEFAULT_STYLE

相當(dāng)于wxFD_OPEN
2

wx.FD_OPEN

這是一個(gè)打開的對話框;該對話框的默認(rèn)按鈕的標(biāo)簽是“打開”
3

wx.FD_SAVE

這是一個(gè)保存對話框;該對話框的默認(rèn)按鈕的標(biāo)簽是“保存”
4

wx.FD_OVERWRITE_PROMPT

對于只保存對話框:提示進(jìn)行確認(rèn),如果一個(gè)文件將被覆蓋
5

wx.FD_MULTIPLE

僅適用于打開的對話框:允許選擇多個(gè)文件
6

wx.FD_CHANGE_DIR

更改當(dāng)前工作目錄到用戶選擇的文件是目錄
wx.FileDialog類的成員函數(shù) -
S.N.
函數(shù)與說明
1

GetDirectory()

返回默認(rèn)目錄

2

GetFileName()

返回默認(rèn)文件名

3

GetPath()

返回選定文件的完整路徑
4

SetDirectory()

設(shè)置默認(rèn)目錄

5

SetFilename()

設(shè)置默認(rèn)文件

6

SetPath()

設(shè)置文件路徑

7

ShowModal()

顯示對話框,如果用戶單擊OK按鈕返回wx.ID_OK,否則 wx.ID_CANCEL

實(shí)例

在下面的例子中,頂層幀顯示按鈕和一個(gè)多行TextCtrl。
self.text = wx.TextCtrl(pnl, size = (-1,200), style = wx.TE_MULTILINE) 
self.btn1 = wx.Button(pnl, label = "Open a File")
EVT_BUTTON事件綁定注冊 OnClick()函數(shù)到按鈕。
self.Bind(wx.EVT_BUTTON, self.OnClick, self.btn1) 

OnClick()函數(shù)顯示一個(gè)FileDialog的打開模式。其選擇返回為dlg。通過GetPath()函數(shù)獲得的選定文件和它的內(nèi)容顯示在父窗口的TextCtrl框。

def OnClick(self, e): 
   wildcard = "Text Files (*.txt)|*.txt" 
   dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", wildcard, wx.OPEN) 
	
   if dlg.ShowModal() == wx.ID_OK:
      f = open(dlg.GetPath(), 'r') 
      with f: 
         data = f.read() 
         self.text.SetValue(data) 
完整的代碼如下 -
import wx 
import os 

class Mywin(wx.Frame): 
            
   def __init__(self, parent, title): 
      super(Mywin, self).__init__(parent, title = title)  
         
      self.InitUI() 
         
   def InitUI(self):    
      self.count = 0 
      pnl = wx.Panel(self) 
      vbox = wx.BoxSizer(wx.VERTICAL) 
      hbox1 = wx.BoxSizer(wx.HORIZONTAL) 
      hbox2 = wx.BoxSizer(wx.HORIZONTAL) 
		
      self.text = wx.TextCtrl(pnl, size = (-1,200),style = wx.TE_MULTILINE) 
      self.btn1 = wx.Button(pnl, label = "Open a File") 
      self.Bind(wx.EVT_BUTTON, self.OnClick, self.btn1) 
		
      hbox1.Add(self.text, proportion = 1, flag = wx.ALIGN_CENTRE) 
      hbox2.Add(self.btn1, proportion = 1, flag = wx.RIGHT, border = 10) 
		
      vbox.Add(hbox2, proportion = 1, flag = wx.ALIGN_CENTRE) 
         
      vbox.Add(hbox1, proportion = 1, flag = wx.EXPAND|wx.ALIGN_CENTRE) 
         
      pnl.SetSizer(vbox) 
      self.Centre() 
      self.Show(True)   
		
   def OnClick(self, e): 
      wildcard = "Text Files (*.txt)|*.txt" 
      dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", wildcard, wx.OPEN)
		
      if dlg.ShowModal() == wx.ID_OK: 
         f = open(dlg.GetPath(), 'r') 
			
         with f: 
            data = f.read() 
            self.text.SetValue(data)  
      dlg.Destroy() 
                                    
ex = wx.App() 
Mywin(None, 'FileDialog Demo - www.yiibai.com') 
ex.MainLoop()
上面的代碼產(chǎn)生下面的輸出 -



wx.FontDialog 類

這個(gè)類的對象是一個(gè)字體選擇對話框。這個(gè)對話框的外觀也為操作系統(tǒng)特有的。屬性,例如名稱,大小,權(quán)重等。所選字體的形式返回作為此對話框的返回值。

需要這種類構(gòu)造Fontdata參數(shù)用于初始化這些屬性。
wx.FontDialog(pa