- PyGTK 教程
- PyGTK - 首頁
- PyGTK - 簡介
- PyGTK - 環境
- PyGTK - Hello World
- PyGTK - 重要類
- PyGTK - 視窗類
- PyGTK - 按鈕類
- PyGTK - 標籤類
- PyGTK - 輸入框類
- PyGTK - 訊號處理
- PyGTK - 事件處理
- PyGTK - 容器
- PyGTK - 箱式容器類
- PyGTK - 按鈕箱類
- PyGTK - 對齊類
- PyGTK - 事件框類
- PyGTK - 佈局類
- PyGTK - 組合框類
- PyGTK - 切換按鈕類
- PyGTK - 複選框類
- PyGTK - 單選按鈕類
- PyGTK - 選單欄、選單和選單項
- PyGTK - 工具欄類
- PyGTK - 調整類
- PyGTK - 範圍類
- PyGTK - 縮放類
- PyGTK - 捲軸類
- PyGTK - 對話方塊類
- PyGTK - 訊息對話方塊類
- PyGTK - 關於對話方塊類
- PyGTK - 字型選擇對話方塊
- PyGTK - 顏色選擇對話方塊
- PyGTK - 檔案選擇對話方塊
- PyGTK - 筆記本類
- PyGTK - 框架類
- PyGTK - 縱橫比框架類
- PyGTK - 樹形檢視類
- PyGTK - 面板類
- PyGTK - 狀態列類
- PyGTK - 進度條類
- PyGTK - 視口類
- PyGTK - 滾動視窗類
- PyGTK - 箭頭類
- PyGTK - 圖片類
- PyGTK - 繪圖區類
- PyGTK - 旋轉按鈕類
- PyGTK - 日曆類
- PyGTK - 剪貼簿類
- PyGTK - 標尺類
- PyGTK - 超時
- PyGTK - 拖放
- PyGTK 有用資源
- PyGTK - 快速指南
- PyGTK - 有用資源
- PyGTK - 討論
PyGTK - 面板類
Paned 類是用於顯示兩個可調整面板的部件的基類,這些面板可以水平排列(gtk.Hpaned)或垂直排列(gtk.Vpaned)。子部件可以透過使用 pack1() 和 pack2() 方法新增到面板中。
Paned 部件在兩個面板之間繪製一個分隔線滑塊,並提供一個控制代碼來調整它們的相對寬度/高度。如果面板內子部件的 resize 屬性設定為 True,它將根據面板的大小調整大小。
以下方法可用於 HPaned 和 VPaned 類:
Paned.add1(child) - 將由child指定的部件新增到頂部或左側面板
Paned.add2(child) - 將由child指定的部件新增到底部或右側面板。
Paned.pack1(child, resize, shrink) - 將由child指定的部件新增到頂部或左側面板,並帶引數。如果resize為True,則當調整 Paned 部件大小時,應調整child的大小。如果shrink為True,則child可以比其最小尺寸請求更小。
Paned.pack2(child, resize, shrink) - 設定兩個面板之間分隔線的的位置。
兩種型別的 Paned 部件都發出以下訊號:
| accept-position | 當paned獲得焦點並導致具有焦點的子部件被啟用時發出。 |
| cancel-position | 當paned獲得焦點時按下Esc鍵時發出。 |
| move-handle | 當paned獲得焦點並移動分隔線時發出。 |
示例
以下示例使用 gtk.Hpaned 部件。在左側面板中,添加了一個 TreeView 部件,在右側面板中,有一個 TextView 部件。當選擇 TreeView 中的任何行時,它將發出 row_activated 訊號,該訊號連線到回撥函式。on_activated()函式檢索行的文字並在文字視圖面板中顯示。
觀察程式碼:
import gtk, gobject
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("HPaned widget Demo")
self.set_default_size(250, 200)
vp = gtk.HPaned()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
tree = gtk.TreeView()
languages = gtk.TreeViewColumn()
languages.set_title("GUI Toolkits")
cell = gtk.CellRendererText()
languages.pack_start(cell, True)
languages.add_attribute(cell, "text", 0)
treestore = gtk.TreeStore(str)
it = treestore.append(None, ["Python"])
treestore.append(it, ["PyQt"])
treestore.append(it, ["wxPython"])
treestore.append(it, ["PyGTK"])
treestore.append(it, ["Pydide"])
it = treestore.append(None, ["Java"])
treestore.append(it, ["AWT"])
treestore.append(it, ["Swing"])
treestore.append(it, ["JSF"])
treestore.append(it, ["SWT"])
tree.append_column(languages)
tree.set_model(treestore)
vp.add1(tree)
self.tv = gtk.TextView()
vp.add2(self.tv)
vp.set_position(100)
self.add(vp)
tree.connect("row-activated", self.on_activated)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_activated(self, widget, row, col):
model = widget.get_model()
text = model[row][0]
print text
buffer = gtk.TextBuffer()
buffer.set_text(text+" is selected")
self.tv.set_buffer(buffer)
if __name__ == '__main__':
PyApp()
gtk.main()
以上程式碼將生成以下輸出:
廣告