Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/266: Рейтинг темы: голосов - 266, средняя оценка - 4.91
 Аватар для RazorQ
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386

Qt vs. .NET

07.09.2009, 20:11. Показов 52989. Ответов 312
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Лично я сделал для себя выбор: я буду учить и использовать библиотеку Qt. Во-первых, она кросс платформенная. Для меня это очень актуально, потому что приходится сидеть как на виндовс так и, в большей степени, на линуксе. Во-вторых, бесплатная. Впрочем за .NET тоже платить не надо, но все равно приятно. В-третьих, с ней приятно работать. Это уже не мой слова. Я их вычитал из книги, которая учит программировать с помощью Qt. Хочу услышать ваше мнение.
P.S. если вы не знаете ни одну из библиотек, то лучше ничего не пишите.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.09.2009, 20:11
Ответы с готовыми решениями:

Оптимизация производительности C#.NET (Алгоритм, Многопоточность, Debug, Release, .Net Core, Net Native)
Решил поделится своим небольшим опытом по оптимизации вычислений на C#.NET. НЕ профи, палками не кидать, конструктив приветствуется! ...

Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart
Изучаю .Net. Хочу написать некое серверное приложение (думаю что учеба лучше на реальном примере, нежели писать примитивные hello world)....

Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net
Всем привет! Нужно написать клиент-серверное приложение на основе Microsoft Sql Server 2005 Express Edition. Некое клиент-серверное...

312
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
08.02.2011, 14:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Vourhey Посмотреть сообщение
Я беру практический пример - окна и любые компоненты можно создать без ООП легко
Возможно. А почему бы не воспользоваться ооп. Если программа маленькая то можно и без ооп справиться, но когда она растет все преимущества обьектов налицо.!!!


Цитата Сообщение от Vourhey Посмотреть сообщение
А буду не в классе их создавать, а в функции создам. И в чем же сложность?
Ну... например тот факт что в c# вообще нельзя без классов работать.

Цитата Сообщение от Vourhey Посмотреть сообщение
но не вижу никакой проблемы налабать гуй такой же как в Qt с классами
с перлом не общался, поэтому ничего сказать не могу.

Добавлено через 2 минуты
Цитата Сообщение от deadlock Посмотреть сообщение
@KOT@, ГУИ и ООП не обязательно взаимосвязанные вещи. Вот тебе ГУИ и ни одного класса и наследования:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Программа
.386
.model flat,stdcall
 
option casemap:none
include masm32includewindows.inc
include masm32includeuser32.inc
includelib masm32libuser32.lib
include masm32includekernel32.inc
includelib masm32libkernel32.lib
 
 
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
 
.DATA                     ; Иницилизиpуемые данные
 
ClassName db "SimpleWinClass",0       ; Имя нашего класса окна
AppName db "Наше первое окно",0       ; Имя нашего окна
 
 
.DATA?                ; Hеиницилизиpуемые данные
hInstance HINSTANCE ?       ; Дескриптор нашей пpогpаммы
CommandLine LPSTR ?
.CODE                ; Здесь начинается наш код
start:
invoke GetModuleHandle, NULL  ; Взять дескриптор пpогpаммы
                                 ; Под Win32, hmodule==hinstance mov hInstance,eax
mov hInstance,eax
 
invoke GetCommandLine   ; Взять командную стpоку. Вы не обязаны
         ; вызывать эту функцию ЕСЛИ ваша пpогpамма не обpабатывает командную стpоку.
mov CommandLine,eax
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT ; вызвать основную функцию
invoke ExitProcess, eax           ; Выйти из пpогpаммы.
                   ; Возвpащаемое значение, помещаемое в eax, беpется из WinMain
 
WinMain proc
 
   hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
    LOCAL wc:WNDCLASSEX      ; создание локальных пеpеменных в стеке
    LOCAL msg:MSG
    LOCAL hwnd:HWND
 
 
    mov   wc.cbSize,SIZEOF WNDCLASSEX   ; заполнение стpуктуpы wc
    mov   wc.style, CS_HREDRAW or CS_VREDRAW
    mov   wc.lpfnWndProc, OFFSET WndProc
    mov   wc.cbClsExtra,NULL
 
    mov   wc.cbWndExtra,NULL
    push  hInstance
    pop   wc.hInstance
    mov   wc.hbrBackground,COLOR_WINDOW+1
 
    mov   wc.lpszMenuName,NULL
    mov   wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov   wc.hIcon,eax
 
    mov   wc.hIconSm,eax
    invoke LoadCursor,NULL,IDC_ARROW
    mov   wc.hCursor,eax
    invoke RegisterClassEx, addr wc  ; pегистpация нашего класса окна
    invoke CreateWindowEx,NULL,
                ADDR ClassName,
                ADDR AppName,
                WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInst,
                NULL
    mov   hwnd,eax
    invoke ShowWindow, hwnd,CmdShow   ; отобpазить наше окно на десктопе
    invoke UpdateWindow, hwnd   ; обновить клиентскую область
 
    .WHILE TRUE   ; Enter message loop
                invoke GetMessage, ADDR msg,NULL,0,0
                .BREAK .IF (!eax)
 
                invoke TranslateMessage, ADDR msg
                invoke DispatchMessage, ADDR msg
   .ENDW
    mov     eax,msg.wParam ; сохpанение возвpащаемого значения в eax
    ret
 
WinMain endp
 
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
 
    .IF uMsg==WM_DESTROY            ; если пользователь закpывает окно
        invoke PostQuitMessage,NULL    ; выходим из пpогpаммы
    .ELSE
        invoke DefWindowProc,hWnd,uMsg,wParam,lParam   ; функция обpаботки окна
        ret
    .ENDIF
    xor eax,eax
 
    ret
WndProc endp
 
 
end start
Да, но только сколько времени потрачено на какое-то простенькое окно, а сколько кода...
0
 Аватар для deadlock
378 / 358 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
08.02.2011, 14:32
разговор не о времени и силах шёл, просто показали тебе, что ООП и ГУИ не обязывают быть друг с другом. ООП - это парадигма, не важно какое приложение на её основе разрабатывать - хоть ГУИ, хоть консольное, хоть демона
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
08.02.2011, 14:59
Цитата Сообщение от @KOT@ Посмотреть сообщение
А почему бы не воспользоваться ооп.
Можно и воспользоваться, без проблем. Просто я не вижу ООП, как аргумент в пользу чего-либо. А ты ООП приводил в пример именно как аргумент. Есть ООП, нет ООП, какая разница...никакой.
Цитата Сообщение от @KOT@ Посмотреть сообщение
но когда она растет все преимущества обьектов налицо
Ой, какой спорный вопрос. Также легко можно сказать, что классы о объекты загромождают код излишней информацией. Также как и то, что они структурируют его и упрощают. А, может, наследование наоборот усложняет? Очень спорный вопрос.
Цитата Сообщение от @KOT@ Посмотреть сообщение
Ну... например тот факт что в c# вообще нельзя без классов работать.
Никто меня в C# не заставляет работать и то, что у тебя функция мэйн находится в классе, это не значит, что ты используешь ООП.
Цитата Сообщение от @KOT@ Посмотреть сообщение
с перлом не общался, поэтому ничего сказать не могу
А и не надо гуй пишут и на перле и на гтк, и все без наследования, классов. И как-то не особо жалуются
Цитата Сообщение от @KOT@ Посмотреть сообщение
Да, но только сколько времени потрачено на какое-то простенькое окно, а сколько кода...
Возьмем любую другую библиотеку - будет меньше кода и без классов. ООП - не сокращает код, сокращает его библиотека.

Добавлено через 16 минут
К слову, пример окошка без классов и наследования:
Perl
1
2
3
use Tk;
$mw = MainWindow->new;
MainLoop;
и ради чего мне теперь выбирать для гуя именно что-то, что ООП поддерживает?

Добавлено через 4 минуты
@KOT@, все-таки, я не удержался от твоего примера с диалогом )))) и достал из своих старых сорцов диалог с виджетами на нем:
Perl
1
2
3
4
   my $commandDlg = $mw->DialogBox(-title=>"Открыть с помощью", -buttons=>["Открыть", "Отмена"]);
   $commandDlg->Label(-text=>"Команда:")->pack();
   my $entry = $commandDlg->Entry(-width=>"30")->pack();
   my $button = $commandDlg->Show();
Собственно, здесь будет диалог с надписью, полем ввода и двумя кнопками И где же эта вопиющая сложность? И где я тут должен что-то от чего-то унаследовать? Непонятно.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21282 / 8307 / 637
Регистрация: 30.03.2009
Сообщений: 22,669
Записей в блоге: 30
08.02.2011, 15:06
Цитата Сообщение от @KOT@ Посмотреть сообщение
Возможно. А почему бы не воспользоваться ооп. Если программа маленькая то можно и без ооп справиться, но когда она растет все преимущества обьектов налицо.!!!
То, что ты написал, относится к программированию в общем, а не к GUI конкретно. GUI в виде классов делают по той простой причине, что и вообще что-то делают в виде классов: в классах удобнее работать (оставим в сторону тот миллион реальных случаев, когда классы скорее мешают, чем помогают). Никто тебе не мешает создать библиотеку для поддержки гуёв, написанную без классов. В том числе и на ассемблере, как было приведено в примере выше.

Тебе на последних нескольких страницах поясняют, что гуи и ооп - это перпендикулярные понятия. А "удобно" - это всё-таки субъективное мнение. Кому-то удобно так, а кому-то эдак.
0
 Аватар для Vanstorm
2773 / 341 / 22
Регистрация: 15.01.2008
Сообщений: 2,614
08.02.2011, 19:46
@KOT@,
ООП - лишь одно из средств. У него уйма недостатков, как и уйма преимуществ. Есть вообще вещи которые на ооп не пишутся. в том числе довольно сложные. на форуме уже была тема по этому поводу, можно посмотреть там приводились примеры.
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
08.02.2011, 20:21
Цитата Сообщение от Evg Посмотреть сообщение
Тебе на последних нескольких страницах поясняют, что гуи и ооп - это перпендикулярные понятия. А "удобно" - это всё-таки субъективное мнение. Кому-то удобно так, а кому-то эдак.
Цитата Сообщение от Vanstorm Посмотреть сообщение
ООП - лишь одно из средств. У него уйма недостатков, как и уйма преимуществ. Есть вообще вещи которые на ооп не пишутся. в том числе довольно сложные.
Все все признаю поражение
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21282 / 8307 / 637
Регистрация: 30.03.2009
Сообщений: 22,669
Записей в блоге: 30
08.02.2011, 22:07
Цитата Сообщение от @KOT@ Посмотреть сообщение
Все все признаю поражение
Дело ведь не в том, что выиграл или проиграл, а в том, понял или нет. Если не понял, значит столько слов было потрачено впустую (правда, кто-то другой, прочтя это, вдруг что-нибудь поймёт)
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
08.02.2011, 22:41
эта тема в основном и есть пустые слова, в обсуждении qt и c# докатиться до ассемблера, что тут сказать
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21282 / 8307 / 637
Регистрация: 30.03.2009
Сообщений: 22,669
Записей в блоге: 30
08.02.2011, 23:03
Цитата Сообщение от alex_x_x Посмотреть сообщение
эта тема в основном и есть пустые слова, в обсуждении qt и c# докатиться до ассемблера, что тут сказать
Обсуждение давно ушло за рамки указанной темы
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
09.02.2011, 16:01
Цитата Сообщение от Evg Посмотреть сообщение
Если не понял, значит столько слов было потрачено впустую
понял!!! если бы я не понял, то еще бы спорил бы


Цитата Сообщение от alex_x_x Посмотреть сообщение
эта тема в основном и есть пустые слова, в обсуждении qt и c# докатиться до ассемблера, что тут сказать
все взаимосвязано
0
 Аватар для velgames
3 / 3 / 0
Регистрация: 09.06.2010
Сообщений: 50
09.02.2011, 17:48
.Net Это такая штука, которую Microsoft сделала(А можно сказать и сперла идею) после того как не смогла получить всемирно известную Java! Посути .Net таже Java, так как без Frameworka не работает, да еще и медленней чем код на C++, следовательно, так как я повернутый на оптимизации и производительности я буду использовать QT! Тем более QT поддерживает полностью OpenGL! Ее возможности огромны, и работает она куда быстрее! Я сейчас изучая все больше .Net понимаю что это за г...но. Да и куда проще добавить пару библиотек в дистрибутив программы, зная что она будет работать на любой хотяб win32 совместимой машине, чем включать в дистрибутив целую .Net Framework! Это ИМХО! Тем более ненавижу кодить мышкой, т.к. в .Net, порой ненадо даже трогать клаву чтоб сделать и скомпилить некоторые программы. Хотя каждому свое. Просто я привык иметь полный контроль над своей программой!
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
09.02.2011, 17:57
Цитата Сообщение от velgames Посмотреть сообщение
я буду использовать QT!
Цитата Сообщение от velgames Посмотреть сообщение
Я сейчас изучая все больше .Net понимаю что это за г...но
Отличный выбор! буду одно, делаю другое, все гавно
Цитата Сообщение от velgames Посмотреть сообщение
Посути .Net таже Java
Да ты что? В 300ом посте открылась истина!!
Цитата Сообщение от velgames Посмотреть сообщение
Тем более QT поддерживает полностью OpenGL! Ее возможности огромны, и работает она куда быстрее!
Покажи код на с++, который гораздо быстрее аналога на c#
Цитата Сообщение от velgames Посмотреть сообщение
т.к. в .Net, порой ненадо даже трогать клаву чтоб сделать и скомпилить некоторые программы
Научи, а?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21282 / 8307 / 637
Регистрация: 30.03.2009
Сообщений: 22,669
Записей в блоге: 30
09.02.2011, 18:10
Цитата Сообщение от velgames Посмотреть сообщение
Посути .Net таже Java, так как без Frameworka не работает
Тогда .Net - тот же bash, ибо юез интерпретатора тоже не работает. А не один ли фиг, как называется то, чего не хватает: интерпретатора или framework

Цитата Сообщение от velgames Посмотреть сообщение
да еще и медленней чем код на C++, следовательно, так как я повернутый на оптимизации и производительности я буду использовать QT!
Повёрнутые на производительности какбэ на WinAPI работают. А Qt ну никак нельзя сказать что летает
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
09.02.2011, 18:30
Цитата Сообщение от Evg Посмотреть сообщение
Повёрнутые на производительности какбэ на WinAPI работают
и пишут на асме.
Либо на языке высокого уровня, но с обильным добавлением асм вставок.
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
09.02.2011, 18:41
повернутые на производительности ничего не пишут, так как это никому не надо
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
09.02.2011, 18:44
Цитата Сообщение от velgames Посмотреть сообщение
Тем более ненавижу кодить мышкой, т.к. в .Net, порой ненадо даже трогать клаву чтоб сделать и скомпилить некоторые программы
в .net можно тоже полностью кодить ручками, а в qt также можно создавать программы одной мышкой, поэтому - это не аргумент.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21282 / 8307 / 637
Регистрация: 30.03.2009
Сообщений: 22,669
Записей в блоге: 30
09.02.2011, 18:58
Цитата Сообщение от PB Посмотреть сообщение
и пишут на асме.
Либо на языке высокого уровня, но с обильным добавлением асм вставок.
И что ты на асме пишешь? Прорисовку окошек вручную или всё-таки вызовы функций WinAPI?
0
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
17.02.2011, 19:52
Раньше немножко кодил на net'e, сейчас перешел на Qt, имхо, но Qt нравиться намного больше, ибо
1)Для меня кросплатформенность важна(танцы с бубном у Mono- не есть кроссплатформеннсть)
2)Не нужен предустановленный фраемворк, и дело даже не в том что памяти меньше занимает(там Qt немного выигрывает), а то что если надо скачать net для запуска приложения, обычный среднестатистический "контактно-одноклассниковый" юзер пошлет все на и скачает аналог
3)В qt все ООПное, по заветам Страуструпа, что лично мне нравиться
4)Документация лучше намного
5)Мне нравятся некоторые Qt-фичи, типа qss(аналога css на Qt)
6)В Qt все как-то логичнее, все придерживается одного стиля, в net'e видна "слоистость"- то есть у функций парой названия составляются по разным правилам
P.S. все имхо
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.02.2011, 19:54
hepr, кьют просто очень хорош
0
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
17.02.2011, 20:33
Согласен с alex_x_x и некоторыми аргументами hepr.
И поспорю с теми, кто на моей стороне.
Цитата Сообщение от hepr Посмотреть сообщение
Не нужен предустановленный фраемворк
Но нужны библиотеки, правда, DPKG в Linux'е часто сами всё установят.
Цитата Сообщение от hepr Посмотреть сообщение
В qt все ООПное,
В C# вроде вообще жёсткая привязка к ООП. Но Qt научил меня любить эту технологию (ООП), до этого ненавидел её.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2011, 20:33

Материалы по ADO.NET, ASP.NET, VB.NET
Народ, может, кто знает, где можно достать материалы в электронном виде по этим курсам (книги, обучающие материалы)? Подскажите, буду...

Нужны книги в электр виде по .Net (ADO.Net, C#) по русски желательно
Ктонть может прислать или выложить или дать готовые (не битые) линки. Буду очень признателен. Очень нужно...

Работа с Excel средствами VB.net. Как перевести код из VBA в VB.net?
Коллеги, добрый день! Нужна помощь! В свое время был написан макрос для Excel, но прошло и потребности выросли. Было принято...

Как указать VS.NET какой из установленный .NET Framewrok SDK использовать
У меня есть дистрибутив VS.NET2002. При инсталляции он ставит .NET Framewrok SDK v1.0.3705 Я скачал .NET Framewrok SDK v1.1.4322....

Инсталяция приложения VB.Net в системе без .NET Framework нужной версии
Работая под Win8.1 и Visual Studio 2010 Prof скомпилировал напсанный на VB.Net exe-файл прилолжения Windows Form. Хочу запустить это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
300
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru