LINUX.ORG.RU

Под Windows можно установить GTK#, и программировать в любой ОС с использование monodevelop. С использованием GTK# проще создать правильную формочку, которая будет адекватно реагировать на ресайз, чем с WF.

PolarFox ★★★★★
()
Ответ на: комментарий от pseudo-cat

На сайте моно написано, что не планируется, я недавно смотрел.

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

>как у gtk# дела с библиотеками?

Как у библиотеки дела с библиотеками? Дружок, иди проспись

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

> как у gtk# дела с библиотеками?

Gtk# это не язык. (это версия последнего сообщения — но без грубостей)

****************************************

а ещё в Mono можно использовать функции из Unix-namespace

в Windows такие программы тоже будут(!) работать, но при условии что запущщены через mono.exe-интерпретатор :-) [в Ms.NET — нет unix-пространства имён]

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

да ничего, я новичек в программировании, еще не во всем разобрался.

а вот я поставил monodevelop. Делаю меню с exit'ом. А меня кидает в релогин при нажатии exit. Как так?

http://paste.org.ru/?s7vvyn

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

да я сам не разбираюсь прям уж сильно :-)

..но на моём опыте есть случай — когда работал с Gtk+ на Python (не C#) — то обнаружил для себя что Gtk+ имеет свой собственный сборщик мусора

...этот сборщик мусора все внешние ссылки (языка высокого уровня) внутри себя сохраняет только как слабые ссылки (тоесть код/данные-функции в любой момент может удалится из памяти высокоуровневого языка)

и если не позаботится об допольнительном сохранении всех используемых объектов в стеке программы — то при нажатии на различные GUI-кнопки (во время запуска программы) могут происходить разные невиданные_для_логике вещщи :-)

тоесть если создаётся объект-«форма», то нужно выделить под неё отдельную переменную (а не просто создать объект внутри области передачи аргументов к Application.Run(...) )... и т д


не знаю насколько C# подвержен такойже фигни.. при работе с Gtk+... но если разберётесь — то буду рад узнать :-)

# p.s.: тоесть я просто в своё время поленился узнавать :-D

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

аааа, все дело в Awesome WM, в обычной сессии гнома все норм. Что может не нравиться Awesome?

tim91
() автор топика

А может, если винформ не является обязательным условием, писать сразу на хорошом кроссплатформенном тулките?

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

>и если не позаботится об допольнительном сохранении всех используемых объектов в стеке программы — то при нажатии на различные GUI-кнопки (во время запуска программы) могут происходить разные невиданные_для_логике вещщи :-)

Это у вас биндинг к Gtk+ неправильный. Специально для этого там используются toggle references, а не weak references. Правильный биндинг к Gtk+ никогда не допустит уничтожения пользовательского объекта, привязанного к GObject'у.

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

это интересно!

вообще уничтожение пользовательскх данных происходило (стабильно! когда данные привязанны к какомуто GTK-объекту... а ...затем этот GTK-объект привязывается к другому GTK-объекту

... затем все указатели (переменные) которые ссылаются на данные и на _первый_ GTK-объект убираются

(.. ссылки остаюсятся только указывающщие-на-второй GTK-объект..)

этот второй GTK-объект может легко извлеч (в любое время) первый GTK-объект ... но вот извлечённый GTK-объект уже содержит неправильные (неработающщие) ссылки связанные с кодом который должен обрабатывать сигналы

тоесть его события обрабатываются непраильно

(в случае если успел сработать Пайтоновский-сборщик-мусора)

...ды что я говорю — я посплю часов 6 а потом попробую снова сделать тестовый код , где выявляется описываемый мной феномен :-)

[правда щаз сложно сказать — где проявлялся этот феномен: толи только на Windows.. толи и на Windows и на Ubuntu... %) %)]

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

>вообще уничтожение пользовательскх данных происходило (стабильно!

Это нормально, если биндинг использует weak references. Текущие версии pygtk, gtk# используют не их, а toggle references (как обстояло дело в старых версиях - не знаю). Отличие в том, что toggle references уведомляют биндинг, когда можно удалять пользовательский объект.

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

>не хочу винду ставить.
Ну пожалейте ваших пользователей! Поставьте винду! Думаете, хорошо им запускать на винде программы, которые под ней никто не тестировал? Если бы производители софта под линукс не тестировали софт под линуксом, удобно бы было?

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

> ... Текущие версии pygtk, gtk# используют не их, а toggle references ...

похоже что это _абсолютно_ верно (как минимум на моей Ubuntu)

http://pastebin.ubuntu.com/510978/
http://ompldr.org/vNXNhMQ/Screenshot.png

спасибо большое за просвящение! :-)

(в противном случае — поидее такие данные как «имя кнопки» (внутри процедуры обработки клика) — должны были бы потерятся)

...жалко что щаз нет возмоэности загрузиться на венду и проверить этот же код :-( :-(
[ведь именно на венде я обнаружил weak-references-поведение]

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

а нет.. я сделал неправильный тэст :-[ .. кроми имя_кнопки нада чтото ещё передать.... ато вдруг (теоретически) этой переменной не даёт умереть тот факт что оно связанно с РЕАЛЬНЫМ_именем_кнопки

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

вот этот вариант наверно более правильный...

http://pastebin.ubuntu.com/510981/
http://ompldr.org/vNXNhOA/Screenshot-1.png

(так как не сохраняет название материала никуда непосредственно в GTK-объект)

и сёравно всё нормлаьно работает на Ubuntu :-)

эх...

никто не может попробовать на венде? :-[

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

> никто не может попробовать на венде? :-[

вот тыг странность-то какая... %) %)

попробовал на вендовом компе — из проекта «gtk-win.sourceforge.net» — разные версии Gtk+ — нигде «неожинная-сборка-мусора» не проявляется %) %) %)

видимо тогда когда это происходило — был какойто неистовый bug (или бажная сборка Gtk) .. а я всю голову сломал пока обнаруживал в чём было дело :-)

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

> Думаете, хорошо им запускать на винде программы, которые под ней никто не тестировал? Если бы производители софта под линукс не тестировали софт под линуксом, удобно бы было?

У вендузятников и так дофига софта. Не запустится — перебьются как-нибудь :3

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