Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Курсовой, root-режим  (Прочитано 2412 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bdq

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #15 : 04 Марта 2010, 17:52:39 »
а можно сымитировать - нарисовать какой-нибудь textEdit или textBox, запускать процесс, отлавливать его stdout и stderr и писать их в окно.
Если используются спец последовательности терминала, то их затрахаешься эмулировать. Проще взять готовое решение.

Готовое - это какое?  :-\

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #16 : 04 Марта 2010, 18:08:01 »

Оффлайн ubuntar

  • Участник
  • *
  • Сообщений: 129
  • Qui quaerit, reperit
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #17 : 04 Марта 2010, 19:24:44 »
Вот нашёл интересную статью,надеюсь пригодится.
http://www.ibm.com/developerworks/ru/library/l-posixcap/l-posixcap.html

Оффлайн bdq

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #18 : 05 Марта 2010, 02:22:19 »
http://library.gnome.org/devel/vte/

Насколько я понял - это касается GTK, а я пишу в QT Creator... Хотя я конечно почитаю, спасибо за ссылки.
Но неужели все так сложно? Ведь когда я дебажу прогу в QT Creator там есть пункт Console Output  - неужели я не могу какой-нибудь одной-двумя строчками вывести его на формочку?
Извините, что постоянно спрашиваю...

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #19 : 05 Марта 2010, 02:27:23 »
По словам qt console widget гуглится это: http://qconsole.sourceforge.net/

Оффлайн bdq

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #20 : 19 Апреля 2010, 15:09:42 »
Огромное спасибо! Действительно, повесил виджет, передаю в него команды - все красиво  :)
Но есть еще одна проблема... повесил на форму прогресс-бар, хочу чтобы он увеличивался по мере установки какого-либо очередного пакета, но я не знаю, как это отследить... Т.е. я передаю в консоль (виджет) напр. sudo dpkg -i ubuntu-tweak.deb, он инсталится, в терминале я это вижу, моя прога в это время не повисает, потом этот пакет установился, я накручиваю прогресбар и передаю следующий пакет для установки - так я хочу. Но как мне проверить, что dpkg уже завершился и я могу передавать следующий пакет для установки?

Оффлайн armad

  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #21 : 19 Апреля 2010, 17:11:50 »
Цитировать
Т.е. я передаю в консоль (виджет) напр. sudo dpkg -i ubuntu-tweak.deb, он инсталится, в терминале я это вижу, моя прога в это время не повисает, потом этот пакет установился, я накручиваю прогресбар и передаю следующий пакет для установки - так я хочу. Но как мне проверить, что dpkg уже завершился и я могу передавать следующий пакет для установки?
command1 && command2 не оно?
Ubuntu 10.04. 2.6.35-25-generic-pae Проблем нет.

Оффлайн bdq

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #22 : 19 Апреля 2010, 17:35:59 »
я знаю, как установить все сразу  :) Но дело именно в том, как повесить прогрессбар, который отображал бы процент завершения установки всех пакетов

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #23 : 19 Апреля 2010, 17:41:17 »
Этот виджет работает, как обычный эмулятор терминала? Т.е. просто связать поток вывода и консольку можно? Если да, тогда проблем не вижу. Запускай процесc dpkg, читай его stdout+stderr, пиши это всё в консольку. По завершении одной инсталяции просто двигай прогрессбар и запускай следующий dpkg.

Оффлайн armad

  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #24 : 19 Апреля 2010, 17:42:25 »
Цитировать
я знаю, как установить все сразу
Тут речь идет не о том что все сразу, а о том что в таком случае command2 выполнится только в случае удачного завершения command1
т.е ставим_пакет_1 &&  рисуем_прогрессбар && и т.д
Ubuntu 10.04. 2.6.35-25-generic-pae Проблем нет.

Оффлайн bdq

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #25 : 19 Апреля 2010, 17:50:32 »
Цитировать
я знаю, как установить все сразу
Тут речь идет не о том что все сразу, а о том что в таком случае command2 выполнится только в случае удачного завершения command1
т.е ставим_пакет_1 &&  рисуем_прогрессбар && и т.д

я так и хочу, но дело в том, что посылая в консоль command1 && command2 они пойдут устанавливаться поочередно, но я не могу послать в консоль между ними команду увеличения прогрессбара. насколько я понял моя прога и этот виджет консоли - 2 разных процесса, т.к. во время установки мое приложение не висит. а просто последовательно выполнив посылку команды1, прогрессбар, команда 2, прогрессбар увеличится после посылки, а не после установки, т.к. выполнение происходит параллельно...   

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #26 : 19 Апреля 2010, 18:29:52 »
А что, от виджета вообще никакой обратной связи нет?
Может, callback-и какие можно поставить или создать класс-наследник, и перегрузить какие-нибудь методы?
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: Курсовой, root-режим
« Ответ #27 : 19 Апреля 2010, 19:03:04 »
if [ `id -u` > 0 ]; then
if [ "x$DISPLAY" = "x" ]; then
sudo наша_прога
else
case $DESKTOP_SESSION in
gnome) gksudo наша_прога
kde) kdesudo наша_прога
*) echo "unknown DE" && exhit
esac
fi
else наша_прога
fi
ну, где-то так)
« Последнее редактирование: 19 Апреля 2010, 19:13:38 от Frank »

Оффлайн bdq

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #28 : 19 Апреля 2010, 23:01:30 »
if [ `id -u` > 0 ]; then
if [ "x$DISPLAY" = "x" ]; then
sudo наша_прога
else
case $DESKTOP_SESSION in
gnome) gksudo наша_прога
kde) kdesudo наша_прога
*) echo "unknown DE" && exhit
esac
fi
else наша_прога
fi
ну, где-то так)

Это, как я понимаю вы мне на самый первый мой вопрос в теме ответили, спасибо, но его я уже решил.

Насчет теперешней проблемы: пытаюсь использовать то, что написано здесь http://www.opennet.ru/openforum/vsluhforumID9/6302.html#1, но у меня не хочет подключаться kvm.h :(

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Курсовой, root-режим
« Ответ #29 : 20 Апреля 2010, 11:13:20 »
у меня не хочет подключаться kvm.h :(
Он в заголовках ядра.
Надо поставить пакет linux-headers
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.048 секунд. Запросов: 25.