![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
un-defined |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Есть проект виджета эмулятора терминала, написанный на qt4. Но некроссплатформенный, потому как использует системные вещи. Это будет интересно кому-нибудь?
Может кто-нибудь сможет его под mingw собрать? я не могу, за неимением windows, так что просто не в курсе, как там что в mingw устроено. Если что - ссылка вот: http://sourceforge.net/projects/qtermwidget |
|
|
![]() |
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
А поподробней описание?
Просто с нынешним описанием не понятно, в чем его вкусность! ![]() |
|
|
un-defined |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вкусность в том, что его можно встраивать в свои приложения именно как обычный виджет qt. При этом он никак не зависит от KDE, хотя и сделан на основе konsole. Ну и поддержка unicode вроде бы тоже имеется.
|
|
|
void* |
![]()
Сообщение
#4
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
очень интересная вещица, надо будет взглянуть
![]() насколько я понял это под *nix? Сообщение отредактировал void* - 9.7.2008, 9:36 |
|
|
Гость_Гость_* |
![]()
Сообщение
#5
|
Гости ![]() |
Неплохо.
Собралось и заработало с Qt 4.3.1, правда debug пример не линкуется, только резиловый создается. Цитата `.L187' referenced in section `.rodata' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o): defined in discarded section `.gnu.linkonce.t._ZNK7Konsole14CharacterColor5colorEPKNS_10ColorEntryE' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o)
`.L179' referenced in section `.rodata' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o): defined in discarded section `.gnu.linkonce.t._ZNK7Konsole14CharacterColor5colorEPKNS_10ColorEntryE' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o) `.L182' referenced in section `.rodata' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o): defined in discarded section `.gnu.linkonce.t._ZNK7Konsole14CharacterColor5colorEPKNS_10ColorEntryE' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o) `.L185' referenced in section `.rodata' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o): defined in discarded section `.gnu.linkonce.t._ZNK7Konsole14CharacterColor5colorEPKNS_10ColorEntryE' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o) `.L186' referenced in section `.rodata' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o): defined in discarded section `.gnu.linkonce.t._ZNK7Konsole14CharacterColor5colorEPKNS_10ColorEntryE' of ../libqtermwidget_d.a(TerminalCharacterDecoder.o) |
|
|
un-defined |
![]()
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да, это под *nix
Лучше брать не файловый релиз, а из CVS - там посвежее, почище должно быть. Насчет debugовой версии ничего сказать не могу, не было такого ![]() Сообщение отредактировал un-defined - 9.7.2008, 12:15 |
|
|
Гость_Гость_* |
![]()
Сообщение
#7
|
Гости ![]() |
Единственное что бесит - исходный код испагенный комментариями (походу на их генерацию и набор у автором ушло времени больше чем на создание самого виджета), читать очень трудно.
|
|
|
ViGOur |
![]()
Сообщение
#8
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Добавил: QTermWidget - Эмулятор терминала
|
|
|
void* |
![]()
Сообщение
#9
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
возможно буду использовать в своей программе этот виджет, чуть позже покопаюсь поподробнее
|
|
|
un-defined |
![]()
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
void* |
![]()
Сообщение
#11
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
немного покопался в коде. Действительно обильные комментарии затрудняют чтение кода, да и стиль программирования местами не очень понравился: постоянные приведения в стиле Си, использование void* (что весьма нежелательно, да и по-моему не аргументированно). Ну а так, в принципе неплохо, но еще очень огорчило отсутствие полосы прокрутки
|
|
|
un-defined |
![]()
Сообщение
#12
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
немного покопался в коде. Действительно обильные комментарии затрудняют чтение кода, да и стиль программирования местами не очень понравился: постоянные приведения в стиле Си, использование void* (что весьма нежелательно, да и по-моему не аргументированно). Ну а так, в принципе неплохо, но еще очень огорчило отсутствие полосы прокрутки За исходный стиль винить разработчиков konsole в KDE4 ![]() Если есть предложения по улучшению - патчи принимаются. Комментарии мне лично не мешают. Полоса прокрутки отключена сознательно - мне так внешний вид больше нравится. Ctrl+PgUP,PgDn еще никто не отменял, а размером history можно управлять. В принципе никто не мешает включить, ну или опцию добавить.. может и сделаю, если уж прямо очень убедительно надо (хотя я, опять повторю, такой необходимости не вижу) Вообще просторов для улучшения там море, никому не возбраняется поучаствовать. |
|
|
void* |
![]()
Сообщение
#13
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
un-defined |
![]()
Сообщение
#14
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
void* |
![]()
Сообщение
#15
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
теперь другое дело
![]() ![]() насчет void* - лично я не совсем понимаю зачем в классе держать указатели на void и при каждом их использовании приводить их к нужному типу:
примеры:
|
|
|
un-defined |
![]()
Сообщение
#16
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
теперь другое дело ![]() ![]() Шрифт моноширинный должен быть. По умолчанию стоит Monospace, 10. Я ставил еще terminus, 12 С другими шрифтами могут быть как раз такие проблемы, так как положение курсора вычисляется как (размер символа) Х (количество символов). А в немоноширинных шрифтах размер символа непостоянен.. Но вообще я в этот раз не трогал ту часть, которая за шрифты отвечает ![]() насчет void* - лично я не совсем понимаю зачем в классе держать указатели на void и при каждом их использовании приводить их к нужному типу:
потому что надо было спрятать внутренние типы от приложений, которые будут этот класс использовать. Понятно, что тут явно просятся forward declarations и pimpl, но я решил вообще убрать из интерфейсного класса какие-либо упоминания о внутренних классах. Может быть как-нибудь переделаю на досуге ![]() |
|
|
void* |
![]()
Сообщение
#17
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Шрифт моноширинный должен быть. По умолчанию стоит Monospace, 10. Я ставил еще terminus, 12 С другими шрифтами могут быть как раз такие проблемы, так как положение курсора вычисляется как (размер символа) Х (количество символов). А в немоноширинных шрифтах размер символа непостоянен.. в принципе да, с Monospace все вроде нормально ЗЫ я конечно наверно уже совсем обнаглел, но может сделаешь еще и горизонтальную полосу прокрутки или вместо обоих полос прокрутки враппер из QAbstractScrollArea? ![]() Сообщение отредактировал void* - 16.7.2008, 10:17 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#18
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
un-defined |
![]()
Сообщение
#19
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А зачем нужна горизонтальная прокрутка?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#20
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
строки могут быть длинные, а перенос не информативен, т.к. нарушает реальный вывод, пример, сборка Qt.
|
|
|
Lenymo |
![]()
Сообщение
#21
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 16.6.2010 Пользователь №: 1812 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Подскажите, пожалуйста, а можно ли на основе этого эмулятора сделать виджет реального терминала?
|
|
|
un-defined |
![]()
Сообщение
#22
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 8.7.2008 Пользователь №: 227 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Lenymo |
![]()
Сообщение
#23
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 16.6.2010 Пользователь №: 1812 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
В общем, мне нужен виджет типа PuTTY для работы через реальный последовательный порт - чтобы он обеспечивал управление удаленным узлом и отображение, в то время как сама работа выполнялась бы на другой стороне.
|
|
|
kwisp |
![]()
Сообщение
#24
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Lenymo,
ну к примеру в терминале всегда можно набрать ssh имя_позбзователя@имя_машины - вот в принципе даже без переделки в каком то виде есть такая возможность. |
|
|
Lenymo |
![]()
Сообщение
#25
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 16.6.2010 Пользователь №: 1812 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
kwisp, мне нужен serial terminal...
|
|
|
kuzulis |
![]()
Сообщение
#26
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата kwisp, мне нужен serial terminal... ssh может быть over serial. Lenymo, нет в природе такого виджета как вы хотите. Есть отдельно библиотеки/классы для GUI, есть для работы с портом, есть кое что на qt-apps.org, часть кода можно стыбрить из KDE, т.е. везде всего понемножку, поэтому делайте сами. |
|
|
Lenymo |
![]()
Сообщение
#27
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 16.6.2010 Пользователь №: 1812 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
kuzulis, так я и собираюсь сама, просто надеялась сэкономить время и не изобретать велосипед
![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 12.6.2025, 20:20 |