ПрограммированиеФорумОбщее

Переход с Qt на .NET

Страницы: 1 2 Следующая »
#0
21:27, 28 апр 2011

Доброго времени суток!

Я неплохо знаю Qt, а сейчас пытаюсь освоить .NET(3.5), и возникло несколько вопросов связанных с редактором форм:

1. Где в .NET классы аналогичные QLayout и QSpacer, или как прицепить мэнэджер размещения к форме?
1.1 Как сделать что-бы, например панель, занимала всю площадь формы?
2. Есть ли в .NET аналоги сигналов/слотов?
3. В сгенерирированном коде есть методы вида:

  System::Void foo( System::Object^ sender){}
  

Я правильно понимаю, что ^ это "умный указатель" из C++/CLI, или что-то еще?
4. Нет инклудов в сгенерированных файлах. Почему это компилируется?

Заранее спасибо!

#1
21:44, 28 апр 2011

Try
> 1. Где в .NET классы аналогичные QLayout и QSpacer, или как прицепить мэнэджер
> размещения к форме?

LayoutPanel и иже с ней, - это если приспичило WinForms использовать. Как там в WPF, - хз, я ейный больной на всю голову XML и придуманный для лиц с альтернативным творческим мышлением Expression Blend не асилил

Try
> 2. Есть ли в .NET аналоги сигналов/слотов?

Гуглить делегаты

#2
22:43, 28 апр 2011

>4. Нет инклудов в сгенерированных файлах. Почему это компилируется?
Стоит почитать основные принципы работы CLR и вообще архитектуру дотнета, это в 2 словах не рассказать

>1.1 Как сделать что-бы, например панель, занимала всю площадь формы?
там где-то должно быть свойство Dock

> Есть ли в .NET аналоги
Огорчает постановка вопроса, дотнет это блин не игрушка сделанная студентами в подвале, есть аналоги всего что только можно вообразить
Если аналогов нет значит оригинал уныл и вместо него есть более качественная альтернатива

#3
23:15, 28 апр 2011

> Если аналогов нет значит оригинал уныл и вместо него есть более качественная альтернатива

Не всегда, например на ум приходит QStackedWidget. Когда я начинаю читать на форумах про TabControl и пустой Label, чтобы закрыть (!) им табы, у меня начинает нервно подергиваться глаз.

#4
23:59, 28 апр 2011

Странно, обычно в обратную сторону переходят (:

#5
1:05, 29 апр 2011

Лично я использовал WPF, чего и вам советую, он мне показался намного проще winforms.

Mono и переносимость мне вообще была не важна. Проект был чисто под винду и чисто для PC.

В противном случае не рекомендовал бы переходить на .NET.

Кстати по поводу компиляции где хедеров, у MS это вошло в моду, ты еще не видел WPF. Там куча файлов генерируется и суется не в проект, а в папку obj и как бы не предназначены для ручного изменения, короче опять MS всё за всех решает.

PS: WinForms это вообще муть, непроходимая, имхо, зато для него есть поддержка в mono.

#6
12:19, 29 апр 2011

>>Я правильно понимаю, что ^ это "умный указатель" из C++/CLI, или что-то еще?
Да это умный указатель... И умнее обычного. работать как с обычным указателем, но объявлять так:

System::Object^ obj = gcnew System::Object();

Яс дело вместо System::Object может быть любой класс на объект которого нужно сделать умный указатель
Удалять не надо, сборщик мусора сам удалит.
Ах да, надеюсь вы знаете что использовать обычный указатель (*) на .net классы не рекомендуется, это называется смешивать управляемый и неуправляемый код, что вообще-то считается ошибкой.

>>Нет инклудов в сгенерированных файлах. Почему это компилируется?
Хм, у меня в visual studio.net 2005 они есть и без них собираться не будет, то есть все как в обычном c++ коде. А понял, .net платформу не нужно инклюдить. Запись
using namespace System;
И далее, указывает что код должен использовать эту платформу и все что нужно само подключится.

#7
14:05, 29 апр 2011

> Запись using namespace System;
> И далее, указывает что код должен использовать эту платформу и все что нужно само подключится.

"using namespace" ничего не подключает, его использование аналогично c++, просто чтобы каждый раз не писать при обращение к элементам namespace-а. Подключение происходит в проекте, когда добавляются reference.

#8
15:46, 29 апр 2011

Amp
> Когда я начинаю читать на форумах про TabControl и пустой Label, чтобы закрыть
> (!) им табы, у меня начинает нервно подергиваться глаз.
Зачем??? Все решается проще.

#9
16:47, 29 апр 2011

Всем спасибо за советы!
Если у меня будут еще вопросы - напишу.

#10
17:16, 29 апр 2011

Monstradamus
> Зачем??? Все решается проще.

Это совет с одного из известных отечественных форумов, видимо решение в лоб. Говорят, что подобная порнография и в реальных проектах наблюдается.

#11
17:21, 29 апр 2011

Amp
Ну так такую порнографию накодить можно на любом языке, используя любую технологию. По этому, например, вопросу адекватное решение гуглится в лоб.

#12
22:11, 29 апр 2011

XAML очередная кривая поделка мс, в их стиле. Освоить не сложно, но завтра выйдет очередное их изобретение и о ней забудут, винформы уже мертвые можно сказать. Кому интересно читаем  M. MacDonald, Pro WPF in C# 2010 Windows Presentation Foundation in .NET 4.

#13
22:14, 29 апр 2011

А кривота ее и сырость вскрывается при попытке хотябы заюзать патерн mvvm

#14
22:17, 29 апр 2011

Monstradamus
> По этому, например, вопросу адекватное решение гуглится в лоб.

Существует именно "формошлепное" решение без привлечения сторонних компонент?

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.