2011-03-23 95 views
1

有沒有一種方法可以從當前窗口範圍內通過控件名稱/或ID從c/C++中查找GTKWidget?GTK +通過控件ID找到GTKWidget

在的WinForms,你有這樣的事情:(或結構/類/等)

public class Form1 : Form 
{ 
    public void Test() 
    { 
     this.Controls.Find("ControlName"); 
    } 
} 
+0

在一個正常的設計中,你不必這樣做 – 2012-01-20 07:25:53

回答

0

在GTK +我們存儲在任何部件的引用,我們可能需要使用一個變量在以後的代碼來訪問作爲相關回調函數中的用戶數據傳遞。如果您使用的是UI構建器(如glade),那麼可以,您可以通過UI構建器中提供的名稱來引用構件。否則,答案就是沒有辦法像這樣「找到」小部件。

如果你能提供一個更具體的例子,我可以詳細說明。

1

您可以使用gtk_widget_set_name()設置窗口小部件的名稱,但我不認爲有內置函數可以根據名稱在層次結構中查找窗口小部件。

儘管如此,如果您有需要,這不會太難寫。由於Micah指出,GTK +應用程序一般是如何構建的,所以從手動創建UI的時候就保留指向所需小部件的指針是比較常見的方式。