Gtk Spinner не появляется - PullRequest
0 голосов
/ 21 июля 2010

Я пытаюсь получить объект Gtk :: Spinner для отображения во время вычислений, но ничего не происходит.Фрагмент кода выглядит следующим образом:

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

Я бы подумал, что счетчик должен был знать, над каким диалогом он появляется, но я не вижу никакого способа ввода этого в объект.Кто-нибудь знает, где я мог найти работающий пример?Я могу найти документацию по Gtk во многих местах, но это мало помогает.

Ответы [ 2 ]

2 голосов
/ 21 июля 2010

Вы звонили

spinner.show ();

и добавляли его в какое-то окно?

Кроме того, ваши вычисления могут блокировать интерфейс пользователя, поэтому он не обновляется.Звоните

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

время от времени.

1 голос
/ 21 июля 2010

Чтобы изменить курсор мыши на «занято», вы можете сделать следующее:

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

Чтобы вернуть его обратно, сделайте

window->set_cursor();

вместо.

Отказ от ответственности: я обычно работаю с GTK в C и перевожу это на лету ...

...