LINUX.ORG.RU

простая GUI


0

1

Посмотрел на gtkmm, решил что (лень|мб не смогу) осил(ю|ить). Хочется какой-нибудь GUI-библиотеки, чтобы можно было все делать в чем-то html - подобном.
Например

<window title="My Window" class="myproj" id="WinId1">
  <menu type="main">
    <field name="File">
      <field name="New" onclick="onNew()" />
      ...
    </field>
  </menu>
  <div width=100px height=100px float=right>
    <button title="Click Me" id="buttonClickMe" onclick="someFunction()" />
    <input type="text" id="textField" value="Hi" />
  </div>
</window>
void onNew(object* obj) {
  cout << "file->new pressed" << endl;
}

void someFunction(object* obj) {
  cout << "Clicked. Value of input=\"" <<
    obj->getRoot()->getWindow("WinId1")->getInput("textField")->getValue() << "\"" << endl;
}

OMG, что за ересь я написал..

Черд :(. Я стал сишком Ъ.. Сначала запостил, а уже потом пошел в гугл. Надо лечиться..

★★★★★

Последнее исправление: Tanger (всего исправлений: 2)

лучше жабаскрипт-подобный qml

anonymous
()

QML однозначно. Только оно еще очень глюкавое.

panter_dsd ★★★★
()

QML

А вообще *.ui файл Qt имеет похожий интерфейс.

Zhbert ★★★★★
()
Ответ на: комментарий от VladimirMalyk

Пытался использовать pygtk, но ругается на import gtk.glade.

ImportError: No module named glade
Стоят: glade, libglade, pygtk, ...
Что-то погуглил, но неудачно.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

>но ругается на import gtk.glade

Оно давно deprecated. Используй gtk.Builder!

fat_angel ★★★★★
()

Я так понимаю, хочется WPF и XAML?
Нет такого в линупсах.

QML даже близко не лежал - говнецо это еще то.

anonymous
()

Проще Tk, наверное, ничего нет.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

дай годных линков на плюшки WPF и XAML, те видео что на ютубе не впечатляют. впечатление такое что это привычный декларатив с легкой анимацией

VladimirMalyk ★★★★★
()
Ответ на: комментарий от Eddy_Em

Эм.. Как это упаковывалось?

 $ tar xvzf FW.tgz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
$ cat FW.tgz | head
FW/0000755000076400007640000000000011550330254010034 5ustar  eddyeddyFW/src/0000755000076400007640000000000011550330230010615 5ustar  eddyeddyFW/src/tmp/0000775000076400007640000000000011541137600011425 5ustar  eddyeddyFW/src/tmp/3dadd.c0000664000076400007640000000456411541137600012561 0ustar  eddyeddyGLfloat xOffset = 0., yOffset = 0., zOffset = 0.;

GLfloat lPosition[] = {0.0,100.0,0.0,1.0};

// materials
GLfloat mSpecular[] = {1.0,1.0,1.0,1.0};
// the smaller the larger the specular area is
GLfloat mShininess[] = {128.0};

//colors
$

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

ImportError: No module named glade

Поставь python-glade2. Только он тебе, на самом деле, не нужен т.к. есть gtkBuilder(в питоне это gtk.Builder) который делает то же самое и без glade-биндинга.

true_admin ★★★★★
()
Ответ на: комментарий от Tanger

Все. tar xvf. Не встречал такого раньше..

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em
 $ make
CMake Error: The source directory "/Data/documents/SAO/GTK+openGL/FITSview/FW" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
make: *** [cmake_check_build_system] Error 1

Действительно быдло :)

Tanger ★★★★★
() автор топика
Ответ на: комментарий от true_admin
file FW.tgz 
FW.tgz: gzip compressed data, from Unix, last modified: Sun Apr 10 17:30:17 2011

Распаковывать либо «tar -zxvf FW.tgz», либо «tar -xvf FW.tgz» (все-таки, современный tar тип компрессии сам может определять).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А вот не может.

 $tar xvzf FW.tgz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

$ tar --version
tar (GNU tar) 1.23
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Эдди настолько суров, что даже жмет без компрессии, tar only. Не обращай внимание.

baverman ★★★
()
Ответ на: комментарий от Eddy_Em

Не компилит.

-- checking for module 'gsl'
--   found gsl, version 1.14
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
CMake Error at CMakeLists.txt:50 (target_link_libraries):
  Cannot specify link libraries for target "gsl" which is not built by this
  project.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Вот выхлоп:

cmake .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
Try to use CUDA
-- Found CUDA: /usr/local/cuda
In multithreaded operations will use 4 threads
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/libX11.so
-- Found GTK2_GTK: /usr/lib/libgtk-x11-2.0.so
-- checking for modules 'gtkglext-1.0>=0.7.0;gtkglext-x11-1.0>=0.7.0;cfitsio>=3.0'
--   found gtkglext-1.0, version 1.2.0
--   found gtkglext-x11-1.0, version 1.2.0
--   found cfitsio, version 3.006
-- checking for module 'liblept'
--   found liblept, version 1.0
-- checking for module 'gsl'
--   found gsl, version 1.14
-- Configuring done
-- Generating done
-- Build files have been written to: /dev/shm/FW

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от VladimirMalyk

MVC фреймворк для pygkt с пользованием glade

я на этом делал последний проект

Насколько сложным был проект? Просто посмотрел доки к gtkmvc — такое ощущение, что plain gtk будет лезть из всех щелей при малейшей возможности. То есть, диалоги настройки еще как-то можно на нем сделать, а всё остальное, более динамичное нет. Или я ошибаюсь?

baverman ★★★
()
Ответ на: комментарий от Tanger

У меня в мандриве есть. Ищите здесь.

(она, кстати, не обязательна - просто некоторые функции не будут доступными).

Чтобы отключить:

cmake -DNO_LEPTONICA=1 .
(аналогично с GSL)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от true_admin

У вас, похоже, автоматом zcat вызвался. Без минуса у меня тоже работает, но это привычка - писать параметры по-человечески.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

автоматом zcat вызвался

не, я не проверял, я смотрю на выхлоп от Tanger. Если там zcat вызывается то это ппц, так быть не должно ибо может здорово скрипты поломать.

но это привычка - писать параметры по-человечески.

я тоже всегда минус указываю :)

true_admin ★★★★★
()
Ответ на: комментарий от baverman

у меня как раз было много диалогов настройки. фактически, в интерфейс кусками фрагменты glade вставлялись/удалялись по необходимости.
плюс органично вписалась модульность интерфейса, благодаря чему на финальном и горячем этапе удавалось быстро и малой кровью перекраивать все что требовалось

VladimirMalyk ★★★★★
()
Ответ на: комментарий от Eddy_Em

Да. вроде сбилдилось. что теперь запускать? что-то появилось в scripts. почему INSTALL пустой?

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Этой штуке до релиза еще как раком до Пекина, так что с install'ом я пока не заморачивался (я вообще с install'ом только сегодня начал возиться - хочу библиотечку веб-аутентификации/авторизации в человеческий вид привести, чтобы руками ничего копировать не надо было).

Просто зайдите в src и запустите ./fitsview. Можете смотреть FITS-файлы :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em
artem@mgentoo ~/prog/gui/FW/src $ rm CMakeCache.txt 
artem@mgentoo ~/prog/gui/FW/src $ cmake -DNO_LEPTONICA=1 -DNO_GSL=1 .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/libX11.so
-- Found Freetype: /usr/lib/libfreetype.so 
-- Found GTK2_GTK: /usr/lib/libgtk-x11-2.0.so 
-- checking for modules 'gtkglext-1.0>=0.7.0;gtkglext-x11-1.0>=0.7.0;cfitsio>=3.0'
--   found gtkglext-1.0, version 1.2.0
--   found gtkglext-x11-1.0, version 1.2.0
--   found cfitsio, version 3.27
GSL not found, some mathematics functions wouldn't be avialable
Leptonica library not found, some functions wouldn't be avialable
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
CMake Warning (dev) at CMakeLists.txt:50 (target_link_libraries):
  Cannot specify link libraries for target "-lpthread" which is not built by
  this project.

  CMake does not support this but it used to work accidentally and is being
  allowed for compatibility.

  Policy CMP0016 is not set: target_link_libraries() reports error if only
  argument is not a target.  Run "cmake --help-policy CMP0016" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/artem/prog/gui/FW/src
artem@mgentoo ~/prog/gui/FW/src $ ./fitsview
bash: ./fitsview: No such file or directory
artem@mgentoo ~/prog/gui/FW/src $ 

=)

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Эм..

artem@mgentoo ~/prog/gui/FW/src $ make
make[2]: *** No rule to make target `.glade', needed by `ui.h'.  Stop.
make[1]: *** [CMakeFiles/./gtk.c.dir/all] Error 2
make: *** [all] Error 2

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Епрст. make делать в корневой директории, там же, где cmake (~/prog/gui/FW). А потом, если успешно скомпилится, запускать бинарник.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Нет, не скомпилилось.

[ 25%] Building C object src/CMakeFiles/fitsview.dir/gtk.c.o
In file included from /home/artem/prog/gui/FW/src/include/gtk.h:4,
                 from /home/artem/prog/gui/FW/src/gtk.c:21:
/home/artem/prog/gui/FW/src/include/spots.h:10:42: error: allheaders.h: No such file or directory
In file included from /home/artem/prog/gui/FW/src/include/gtk.h:4,
                 from /home/artem/prog/gui/FW/src/gtk.c:21:
/home/artem/prog/gui/FW/src/include/spots.h:28: error: expected specifier-qualifier-list before ‘BOX’
In file included from /home/artem/prog/gui/FW/src/gtk.c:25:
/home/artem/prog/gui/FW/src/include/imtools.h:11: error: expected declaration specifiers or ‘...’ before ‘BOX’
/home/artem/prog/gui/FW/src/include/imtools.h:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
make[2]: *** [src/CMakeFiles/fitsview.dir/gtk.c.o] Error 1
make[1]: *** [src/CMakeFiles/fitsview.dir/all] Error 2
make: *** [all] Error 2
Что-то это перестало быть интересным.. =)

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Специально временно удалил allheaders.h - компилится, запускается, просит установить библиотеки для полного функционала.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.