2011-03-28 52 views
0

誰能幫助或點我在正確的方向搞清楚如何創造一拖畫矩形框用作在PyGTK中選擇工具選擇工具?我目前正在使用帶有可繪製窗口的事件框,用戶可以在左上角單擊一次,然後在圖像部分的右下角選擇一個,然後在選擇框上繪製一個矩形,但是拖動和繪製矩形將允許用戶更好地調整並獲得更好的準確性。創建使用PyGTK的

我一直在尋求信息或教程不少地方在這一點,但我還沒有太多找到。我對Gtk +比較陌生,所以也許這很簡單,沒有人需要問。

回答

0

實際上,這似乎並不是所有這些都沒有。這實際上非常具體,並且有點具有挑戰性。

我給你開始你離開的步驟,但你開始(和你沒有發佈任何具體的代碼),它會根據文檔,並更好地爲您自己創建的代碼我提示。

順便說一句,擡頭看official PyGTK documentation - 那應該是你的PyGTK的所有對象和函數權威來源。它寫得很好,詳盡,我很少看五分鐘以上找到我需要的東西。

我建議你做的是使用三個信號,連接到你的繪圖區。

創建三個回調(tutorial here),一個用於每個事件。將您的繪畫區域連接到您的事件和回調(再次請參閱教程,您可能需要閱讀其中的幾頁)。

您還需要在全局級別上創建兩個布爾變量(在主類上方,在導入模塊的同一級別上)。第一個控件是否選擇了選擇工具(稱之爲「Select_On」) ,第二個爲是否處於活動狀態(稱爲「Select_Active」)

您使用啓動選擇工具按鈕,設置「Select_On」爲「True」。這應該可能是一個切換按鈕,所以請確保將其設置爲「Select_On」,如果您關閉該按鈕,則將其設置爲關閉。

在按鈕按下事件時,創建用於選擇的對象。你現在要做的事實際上應該很好。另外,將「Select_Active」設置爲「True」。

在運動通知事件,改變基於光標位置的物體的大小。請參閱該文檔以瞭解如何更改其大小,並參考here瞭解如何獲取光標位置。

準備編寫一個算法,以確定如何根據光標位置更改選擇對象的大小。如果您需要幫助,請隨時在單獨的問題中提出要求。

在按鈕釋放事件上,將「Select_Active」設置爲「False」,並調用所有代碼以實際確認選擇。另外,使用「動作通知事件」的好處是,只要光標離開您選擇的小部件,選擇框就會停止更改大小。光標必須重新進入小部件才能繼續更改選擇框大小。

我希望所有這些對你有用,並祝你在項目上最好!

+0

謝謝!我已經落後於這個特定的項目,但我會在未來幾天內將它重新啓動並試用。 – jefferson411 2011-09-16 13:18:54