我正在開發一個C++和GTK3應用程序,但我被困住了。我創建了一個具有三列的glade的視覺應用程序,其中一箇中間的一個是DrawingArea。在那個DrawingArea中,我想在按下按鈕後在點上繪製一些圓,並在該圓上有不同的鼠標事件(如拖放,雙擊,右鍵單擊...)。我在official documentation之後做了第一件事(按下按鈕後畫了一個圓圈),但問題是我不知道如何做鼠標事件,但是我想到了它,並且我有一些不同的解決方案(我不知道他們是最好成績的解決方案也許有更好的):開羅語上的鼠標事件
我認爲最好的方法是創建一個信號cairomm背景,但我沒有看到任何這樣做。也許方法是創建一個cairo表面或類似的東西。
每當我點擊創建一個圓,我將不得不創建一個gtk小部件,我可以在其中處理鼠標事件。這裏的問題是小部件需要具有圓形形狀並且需要可繪製。是否可以創建一個圓形的DrawingArea?這可能是最好的。我看到了創建自定義小部件的方式here。
使用goocanvasmm。這裏的問題是goocanvasmm有一些文檔(我很抱歉,由於我的聲譽,我不能發佈兩個以上的鏈接),我認爲這不是最好的解決方案,我更喜歡使用cairomm。
此應用程序是用C語言編寫的,使用GTK2,使用gnomecanvas繪製圓圈,以簡單的方式向每個圓圈添加信號;現在我將這個應用程序移動到C++和GTK3來更新它。
我對GTK(以及一般的圖形界面)非常陌生,但是我尋找了幾個小時的解決方案,我不知道爲了繼續我的工作,最好的方法是什麼。
謝謝您的幫助:)
謝謝ptomato!我忘了張貼在這裏,最後我用goocanvasmm做了它;這是最好的,最簡單的和實用的解決方案:) – bmenendez
對於2015年後看到這個答案的讀者,goocanvas庫不再維護......不幸的是。 – Oz123