2010-07-21 38 views
0

我試圖讓一個GTK ::微調對象來顯示,而計算正在進行中,但沒有什麼似乎發生。的代碼片段看起來像......的Gtk微調中不顯示

{ 
    Gtk::Spinner spinner; 
    spinner.start(); 
    // do some work... 
    spinner.stop(); 
} 

我還以爲知道它出現哪些對話結束了,但我看不到餵養到對象的任何方式需要微調。有誰知道我在哪裏可以找到一個工作的例子?我可以在很多地方找到Gtk文檔,但這沒什麼幫助。

+0

感謝你的幫助,先生們。 – 2010-07-22 20:06:43

回答

1

要更改鼠標光標移動到 「忙」,你可以做到以下幾點:

Glib::RefPtr<Gdk::Window> window = dialog.get_window(); 
if(window) { 
    window->set_cursor(Gdk::Cursor(Gdk::WATCH)); 
    Gdk::flush(); 
} 

要把它改回來,做

window->set_cursor(); 

代替。

聲明:我一般用GTK用C的工作,並已經翻譯這對飛...

+0

感謝您的提示,ptomato。我瀏覽過文檔,看到你的建議是什麼意圖。可悲的是,當我這樣做的時候,沒有任何區別。有什麼需要在其他地方完成的(我通過帶有診斷的if塊來跟蹤執行情況,並嘗試了一些小部件,包括get_window方法的主對話框)。 – 2010-07-22 07:06:19

+0

哎呀,對不起...忘了'Gdk :: flush()'。見編輯的答案。 – ptomato 2010-07-22 07:16:39

+0

謝謝你,ptomato,這是做的伎倆。在我發現這個特殊事實之前,這將是一段很長的時間。 – 2010-07-22 20:06:20

2

你叫

spinner.show(); 

,並把它添加到某些窗口?

而且,你的計算可以阻止用戶界面,所以它不會被更新。致電

while (Gtk::Main::events_pending()) 
    Gtk::Main::iteration(); 

曾經在一段時間。

+0

感謝您的建議。現在我已經完成了spinner.show(),我意識到也許我正在吠叫錯誤的樹。 Spinner是程序在做某事時箭頭光標變成的東西,不是? Motif人稱之爲觀察光標?如果不是,那另一個叫做什麼? – 2010-07-21 15:54:29

+0

不,微調是一個小部件,就像在頁面加載時出現在許多流行瀏覽器的標籤中一樣,有時稱爲「throbber」。看到我的答案,你想要什麼。 – ptomato 2010-07-21 17:02:43

+0

感謝您的幫助;我毫不懷疑你的回答會解決我所問的問題,但可悲的是我問的問題不是我需要知道的。謝謝你們一樣。 – 2010-07-22 20:07:56