Версия для печати темы
Форум на CrossPlatform.RU _ Трёп _ Билдер vs Qt Дизайнер
Автор: Litkevich Yuriy 10.12.2008, 11:51
по последним слухам цена Qt4 на 3 платформы ~150т.р. тогда видимо на одну 50.т.р - не деньги, если деньги планируется созданным софтом зарабатывать.
Автор: kuler 17.12.2008, 17:04
вот если она столько стоит, то почему дизайнер не сравним с билдером? (который можно тыщ за 25-30 прикупить)
Автор: AD 17.12.2008, 17:08
Цитата(kuler @ 17.12.2008, 17:04)
вот если она столько стоит, то почему дизайнер не сравним с билдером? (который можно тыщ за 25-30 прикупить)
А чем хуже? По мне так намного лучше!
Автор: Litkevich Yuriy 17.12.2008, 17:08
Цитата(kuler @ 17.12.2008, 20:04)
не сравним с билдером
поделись опытом разработки для трех платформ (МакОСь-10, Линух, Виндовоз) на билдере
Автор: kuler 17.12.2008, 19:20
Цитата(Litkevich Yuriy @ 17.12.2008, 17:08)
оделись опытом разработки для трех платформ (МакОСь-10, Линух, Виндовоз) на билдере
а ява билдер не покатит?
Цитата(AD @ 17.12.2008, 17:08)
А чем хуже? По мне так намного лучше!
много косяков в дизайнере, причем очень неприятных. Нет некоторых свойств (правда это скорее косяк компонентов, но в билдере то с этим нет проблем)
Автор: molchanoviv 17.12.2008, 19:41
Не холивару ради скажу: Билдер УГ. Сколько пытался его пользовать, не идет(впрочем как и MSVS) монстровузный больно.
Автор: kuler 18.12.2008, 10:48
Цитата(molchanoviv @ 17.12.2008, 19:41)
Не холивару ради скажу: Билдер УГ.
a что такое УГ?
Цитата(molchanoviv @ 17.12.2008, 19:41)
Сколько пытался его пользовать, не идет
в каком смысле не идет?
Автор: molchanoviv 18.12.2008, 11:19
Цитата
a что такое УГ?
Унылое г...
Цитата
в каком смысле не идет?
В смысле не нравится он мне. Не могу я с ним работать.
Автор: Tonal 18.12.2008, 11:58
http://community.livejournal.com/ru_cpp/348707.html
Автор: AD 18.12.2008, 12:19
Цитата(Tonal @ 18.12.2008, 11:58)
http://community.livejournal.com/ru_cpp/348707.html
Неужели ты тоже так считаешь?
На мой взгляд, если элемент, сделанный в дизайнере, описывается 3-5 строчками - то это хороший дизайнер и хорошая библиотека!
Qt - именно такая Тем более, что в Qt это сделано через внятные и качественные классы. Дерево наследования классов прозрачно и понятно. Что может в этом не нравится?
В билдере нет внятных элементов, нет внятного описания, нет понятных методов. Могу сказать, что, когда я начал программить на С/С++, моими первыми компиляторами были Turbo C (полгода), а потом - Visual C++ 6.0 [хороший компилятор даже на сегодняшний день], поэтому я привык делать вещи, которые вообще-то принято делать руками, делать руками (
). Билдер (на нем я тоже программил и, бывает программлю, к сожалнию, приходиться по работе) - это конструктор ЛЕГО, не более того, а если хотите программировать, то с него надо уходить.
Автор: Litkevich Yuriy 18.12.2008, 12:25
Цитата(Tonal @ 18.12.2008, 14:58)
http://community.livejournal.com/ru_cpp/348707.html
тут больше про Qwt, при беглом знакомстве с которым, меня воротит, в отличие от самой Qt, Qwt стройным и удобным не назовешь.
Автор: AD 18.12.2008, 12:27
Цитата(Litkevich Yuriy @ 18.12.2008, 12:25)
тут больше про Qwt, при беглом знакомстве с которым, меня воротит, в отличие от самой Qt, Qwt стройным и удобным не назовешь.
А зря! Неплохая библиотека. Просто тоже нужен навык работы!
На мой взгляд, также удобна как и Qt!
Автор: Tonal 18.12.2008, 12:29
Там каменты рулят.
В них больше именно по теме...
Автор: kuler 18.12.2008, 13:18
Цитата(AD @ 18.12.2008, 12:19)
а если хотите программировать, то с него надо уходить.
полно здоровых проектов, написанных на билдере (сам с таким работал, программа для рисования окон и заказов на них (и много чего еще связанного с окнами), самая крутая в России (окнограф))
Автор: ranger 22.12.2008, 22:07
если кому интересно, вот http://ru.wikipedia.org/wiki/Delphi_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) в разделе "Известное ПО" есть список программ написанных на дельфях.
Автор: molchanoviv 23.12.2008, 9:20
Чета фигня какая-то. ЕМНИП Skype написан не на дельфях а на Qt.
Вот http://trolltech.com/qt-in-use/story/app/skype
Автор: Litkevich Yuriy 23.12.2008, 9:40
Цитата(molchanoviv @ 23.12.2008, 12:20)
Чета фигна какая-то.
ага я там тоже по поводу многого засомневался, надо поставить там вопросики, типа где мол факты подверждающие сие.
Автор: molchanoviv 23.12.2008, 9:50
Ага, заметил еще в списке KMplayer. Оно вообще KDElib использует.
Автор: Litkevich Yuriy 23.12.2008, 10:47
Цитата(molchanoviv @ 23.12.2008, 12:50)
Ага, заметил еще в списке KMplayer
а их оказывается два и речь идет о http://ru.wikipedia.org/wiki/The_KMPlayer
http://ru.wikipedia.org/wiki/Delphi_(язык_программирования)#.D0.98.D0.B7.D0.B2.D0.B5.D1.81.D1.82.D0.BD.D0.BE.D0.B5_.D0.9F.D0.9E шаблончик "Проверить факты"
Автор: molchanoviv 23.12.2008, 11:04
Да, только ссылка ведет на тот что в составе KDE.
Автор: kuler 23.12.2008, 11:05
да, маловато буит, но зато коммандер на нем написан
Автор: Litkevich Yuriy 23.12.2008, 12:08
Цитата(molchanoviv @ 23.12.2008, 14:04)
ссылка ведет на тот что в составе KDE.
я уже поправил
Автор: molchanoviv 23.12.2008, 14:15
Цитата(kuler @ 23.12.2008, 11:05)
да, маловато буит, но зато коммандер на нем написан
Зато различных, не побоюсь, "быдлокодерских поделок" в госучрежениях на нем навалом. К тому-же Дельфи это вин-онли среда(Kylix мертв) потому вдвойне УГ. Особенно программа на дельфи это кошмар для админа переводящего учреждение на Линукс.
З.Ы. Таким же злом как и дельфи в плане переносимости является ActiveX, .Net(да и вообще все поделия от мелкомягких)
Автор: molchanoviv 23.12.2008, 17:18
Подалуй соглашусь только с Active Directory. Ofiice и Visual Studio вещи спорные рождающе холивары(Единственное преимущество MSVS это отладчик, а вот офисовские COM-вызовы и docx это именно зло, рождающее только проблемы, а единственное преимущество MS Office это скорость запуска по сравнению с OpenOffice). А вот про Sql это ты прям конкретно загнул это кошмар для админа(я с ним очень сильно намучался). Так что даже не уверяй меня что программы от MS это хорошо. Единственное что хорошо у МС так это маркетологи вот они то работают просто отлично впаривая поделки от МС народу. Ах да, еще МС делает неплохие клавы и мышки. ВСЁ.
А на дельфи действительно есть хорашие программы, только их раз, два и обчелся. А вот именно поделок на нем завались.
Автор: kuler 23.12.2008, 17:57
лично у меня в жизни как у человека юникса нет, поэтому я за виндовс, соответственно дополнительных раздражающим фактором кроссплатформенность для меня не является
Автор: ranger 23.12.2008, 18:44
Цитата(kuler @ 23.12.2008, 12:05)
да, маловато буит, но зато коммандер на нем написан
да сам билдер написан на дельфях, думаю что это уже о многом говорит...
Цитата(molchanoviv @ 23.12.2008, 10:20)
Чета фигня какая-то. ЕМНИП Skype написан не на дельфях а на Qt.
Вот пруфлинк
специально полазил по нету поискал... читай http://www.mail-archive.com/ru-firebird@googlegroups.com/msg25414.html(в комментах там).
Автор: kalombo 23.12.2008, 19:02
Цитата(molchanoviv @ 23.12.2008, 17:18)
а вот офисовские COM-вызовы и docx это именно зло, рождающее только проблемы, а единственное преимущество MS Office это скорость запуска по сравнению с OpenOffice.
Буквально сегодня, в Ubuntu, запустил OpenOffice через пуск, скопировал в него текст из браузера, подправил под свои нужнды (просто слова заменил), нажал на пиктограммке "Save", Офис вылетел. В топку такое счастье. Сразу вспомнилась фраза одного человека на нашем локальном форуме города, что он никогда не терял документов пользуясь Word'ом, а в случае OpenOffice такое случалось, значит у меня не единичный случай.
Цитата(ranger @ 23.12.2008, 18:44)
да сам билдер написан на дельфях, думаю что это уже о многом говорит...
Да и сама Делфи написана на Делфи и что в этом плохого? Это только Microsoft создает библиотеки MFC .NET и сама же не использует их при написании программ, насколько мне известно=) Разве стоит называть программу плохой из-за написании её на Делфи? Мне кажется это неправильно.
Автор: kuler 23.12.2008, 19:10
так что про скайп оказались правы и те и эти, хорошо до войны не дошло
Автор: AD 23.12.2008, 21:12
Цитата(molchanoviv)
Подалуй соглашусь только с Active Directory. Ofiice и Visual Studio вещи спорные рождающе холивары(Единственное преимущество MSVS это отладчик, а вот офисовские COM-вызовы и docx это именно зло, рождающее только проблемы, а единственное преимущество MS Office это скорость запуска по сравнению с OpenOffice). А вот про Sql это ты прям конкретно загнул это кошмар для админа(я с ним очень сильно намучался). Так что даже не уверяй меня что программы от MS это хорошо. Единственное что хорошо у МС так это маркетологи вот они то работают просто отлично впаривая поделки от МС народу. Ах да, еще МС делает неплохие клавы и мышки. ВСЁ.
А на дельфи действительно есть хорашие программы, только их раз, два и обчелся. А вот именно поделок на нем завались.
На счет SQL Server и Office это твое личное мнение!
Большинство специалистов (не разработчиков, а пользователей) утверждают обратное. Еще хочу заметить следующее - многие, которые хают это ПО, сами же ими же пользуются. А вот экономическая политика Майкрософт как раз нечестная. Душить маленькие компании - это не есть хорошо. Именно за это не любят эту фирму. Согласись, что если около 75% людей всего Мира используют ПО Майкрософт - это уже говорит о том, что ПО - неплохое и качественное!
Не обижайся, просто не следует превозносить программы дельфистов, которые как раз используют меньшее число пользователей, чем программы мелкомягких. В плане эргономичности - Майкрософт пока лидирует - это факт!
Автор: Litkevich Yuriy 23.12.2008, 22:04
Цитата(kuler @ 23.12.2008, 22:10)
так что про скайп оказались правы и те и эти, хорошо до войны не дошло
мои соображения насчет ядра и оболчки подтвердились: http://www.mail-archive.com/ru-firebird@googlegroups.com/msg25426.html
кстати Опера в томже духе сделана
Автор: molchanoviv 23.12.2008, 23:42
Цитата
Буквально сегодня, в Ubuntu, запустил OpenOffice через пуск, скопировал в него текст из браузера, подправил под свои нужнды (просто слова заменил), нажал на пиктограммке "Save", Офис вылетел. В топку такое счастье. Сразу вспомнилась фраза одного человека на нашем локальном форуме города, что он никогда не терял документов пользуясь Word'ом, а в случае OpenOffice такое случалось, значит у меня не единичный случай.
Моей первой свободной программой стал именно опен офис. Это была еще единичка. Я как-то писал экзаменационный реферат по литературе, во время работы ничего не сохранял и тут это гребаный офис глюкает, вылетает и я остаюсь без уже практичекси дописанного реферата. Я так и предвижу возгласы что надо было сохранаять, или поставить на автосохранение, но извините я лучше перейду на более качественное ПО от Sun Microsystems чем буду пользовать это глюкалово. И таких случаев я знаю море. Да и еще один немаловажный фактор, это лицензионная чистота. Хот кто нибудь мне ,только честно, может похвастать что у него дома стоит хотя-бы лицензионный MS Office? А я могу. Единственная программа которая у меня стоит из пираток это Total Commander(кстати один из редких примеров хороших программ на делфи) и то с постоянно появляющимся окошком при старте.
Цитата
Да и сама Делфи написана на Делфи и что в этом плохого?
Делфи не может быть написана
на делфи. Она может быть написана в делфи на ObjectPascal. Ибо делфи это среда разработки, а язык ObjectPascal. У меня есть знакомые которые искренне считают что Visual C++ это не среда а язык. И ведь не переубедишь их в этом.
Цитата
Разве стоит называть программу плохой из-за написании её на Делфи? Мне кажется это неправильно.
Так а я и не назвал. Я просто сказал что делфи очень популярен среди "быдлокодеров". Я пока и сам им являюсь, все программисты ими когда-то были быдлокодерами, но я хотя-бы стремлюсь не быть им. К тому-же делфи только под виндовз, что является огромным минусом.
Цитата
Еще хочу заметить следующее - многие, которые хают это ПО, сами же ими же пользуются.
Да как-же им не будешь пользоваться если он идет в зависимостях к огромному к-ву программ. Я бы с удовольствием перевел бы у себя на работе всех на опен оффис, но лишь половина из используемых программ умеет работать с любым офисом.
Цитата
Согласись, что если около 75% людей всего Мира используют ПО Майкрософт - это уже говорит о том, что ПО - неплохое и качественное!
Недавние опросы ВЦИОМ показали что порядка 80% людей полностью доверяют тому что показывают по телевизору. Следуя твоей логике, то что говорит в своей передаче господин Малахов является верным, и что та-же уринотерапия помогает от всех болезней.
Цитата
Не обижайся, просто не следует превозносить программы дельфистов
Так я их и не превозношу.
Цитата
В плане эргономичности - Майкрософт пока лидирует - это факт!
Оно лидирует только в плане срубания бабла. Вот всем бы таких маркетологов, и такого бабла.Тогда я думаю на равных условиях ПО от мелкомягких отнюдь бы не было лидером по использованию
Автор: kalombo 24.12.2008, 0:35
Цитата(molchanoviv @ 23.12.2008, 23:42)
Делфи не может быть написана на делфи. Она может быть написана в делфи на ObjectPascal. Ибо делфи это среда разработки, а язык ObjectPascal. У меня есть знакомые которые искренне считают что Visual C++ это не среда а язык. И ведь не переубедишь их в этом.
Во-первых, зачем придираться? Если я говорю написана на Делфи, то я думаю всем понятно, что использовалась библиотека VCL, среда разработки Delphi и т.д. ведь других вариантов нет. Для примера, мы все говорим "написана на Qt", а не "написана на С++ с использованием библиотеки Qt". Во-вторых:
Цитата
Delphi — язык программирования, который используется в одноимённой среде разработки. Название используется начиная с 7 версии среды разработки[2], ранее это был Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название.(с) Wikipedia
Цитата(molchanoviv @ 23.12.2008, 23:42)
Так а я и не назвал. Я просто сказал что делфи очень популярен среди "быдлокодеров". Я пока и сам им являюсь, все программисты ими когда-то были быдлокодерами, но я хотя-бы стремлюсь не быть им. К тому-же делфи только под виндовз, что является огромным минусом.
Там не твоя цитата стоит, я не к тебе обращался. Так что всё верно, ты и не называл.
Автор: Tonal 24.12.2008, 9:02
Цитата
Мир меняется...
(с) Гоблин
Сейчас среди зелёной молодёжи от программирования (быдлокодеров?) популярны C# и VB.Net.
А про C++Builder - загляните в $(DTDIR)/mkspecs. Там есть поддиректория win32-borland.
Т.е. использовать Qt можно и из под C++Builder, исппользуя или не исппользуя VCL по своему усмотрению.
Другой вопрос, что после C++Builder 5 (bcc32 v5.5) компилятор и рантайм стали очень сильно нестабильными.
Поэтому связываться с такой конфигурацией имеет смысл только в унаследованных проектах, когда большинство команды знает только эту среду.
Автор: molchanoviv 24.12.2008, 9:18
Цитата
Сейчас среди зелёной молодёжи от программирования (быдлокодеров?) популярны C# и VB.Net.
Не обязательно быть зеленым чтобы быть быдлокодером. Так что фраза должна звучать так.
Цитата
Сейчас среди быдлокодеров популярны C# и VB.Net.
И еще одна поправка, если ты пишешь на C# и VB.Net, это еще не значит что ты быдлокодер.
Автор: AD 24.12.2008, 10:11
Цитата(molchanoviv @ 23.12.2008, 23:42)
Цитата
Согласись, что если около 75% людей всего Мира используют ПО Майкрософт - это уже говорит о том, что ПО - неплохое и качественное!
Недавние опросы ВЦИОМ показали что порядка 80% людей полностью доверяют тому что показывают по телевизору. Следуя твоей логике, то что говорит в своей передаче господин Малахов является верным, и что та-же уринотерапия помогает от всех болезней.
Ну что же - твоя точка зрения ясна!
Не в тему конечно же скажу, но последнее время по телеку смотрю только новости!
))) А Малаховых и прочую чушню не смотрел и не буду смотреть!
)))
Автор: Tonal 24.12.2008, 11:54
"Незелёные" http://lurkmore.ru/%D0%91%D1%8B%D0%B4%D0%BB%D0%BE%D0%BA%D0%BE%D0%B4%D0%B5%D1%80 видимо существуют, но их довольно мало за пределами http://lurkmore.ru/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4, да и там, думаю с кризисом сильно поубавиться, т.к. для такого феномена нужно очень много устойчивых рабочих мест от которых никто не требует качества.
А про используемые языки - у меня есть несколько знакомых, очень высококлассных, которые используют классически "быдлокодерские" языки: VB6, Delphi, C#, VB.Net.
Автор: molchanoviv 24.12.2008, 13:15
Помоему и в России их до**ра. Мне приходилось видеть кусочки кода программ с которыми мне приходится возиться по работе. Я читал и о**евал. Это кошмар. И еще мне "нравятся" поделки на "бейсике в промтовском переводе"(1С, АС Бюджет и еще несколько программ у которых я не помню названий). И эти люди(кодеры) в индустрии не первый год, так что зеленью я их назвать не могу.
Автор: ranger 24.12.2008, 14:39
Цитата(molchanoviv @ 23.12.2008, 14:15)
К тому-же Дельфи это вин-онли среда
http://ru.wikipedia.org/wiki/Lazarus чем не копия дельфи?
http://wiki.lazarus.freepascal.org/Screenshots
Автор: molchanoviv 24.12.2008, 14:53
И что оно позволяет использовать VCL? Из попыток порта делфи под юникс я видел только Kylix от самого дяди Бормана.
Автор: ranger 24.12.2008, 17:26
там как бы своя библиотека, но имена классов, методов и т.д. точная копия vcl.
Автор: Tonal 25.12.2008, 11:11
Кстати, в копилку плюсов и минусов по сабжу.
Размер минимального статического exe-шника с пустой формочкой для стандартной поставки Builder-а 700-800 кб .
Размер аналогичного под Qt ~5 мб.
В прогу на дебилдере аналогичного размера можно запихать практически всё, что есть в VCL-е.
Конечно, Qt можно специально сконфигурировать, отрезать неиспользуемые виджеты и классы, но при этом нужно хорошо знать что можно отрезать.
К тому же и придётся перекомпилять Qt всякий раз, когда как-то изменяешь состав используемых виджетов/классов, что не очень удобно.
Т.е. в смысле компактности и модульности продукты багланда пока впереди.
P.S. Размер я смотрел для мингвы, хотя не думаю, что он мерьёзно отличается для других компиляторов.
Автор: Litkevich Yuriy 25.12.2008, 11:35
я помню во времена ТурбоПаскаля, борлондовский компиляер весьма виртуозно паковал экзешники. Работали шустро и имени линимальный размер. Тут надо отдать должное Борланду, а точнее их разработчикам компиляторов.
Автор: kuler 12.1.2009, 12:26
вот к примеру недостаток дизайнера - если сделать Layout vertically для компонентов, то их нельзя после этого перемещать - ну куда это годится?
Автор: AD 12.1.2009, 14:20
Цитата(kuler @ 12.1.2009, 12:26)
вот к примеру недостаток дизайнера - если сделать Layout vertically для компонентов, то их нельзя после этого перемещать - ну куда это годится?
После того, как я разобрался с этими лэйотами, мне они даже нравятся стали. Вначале перемещай компоненты, а потом делай layout!
Автор: kuler 12.1.2009, 15:03
Цитата(AD @ 12.1.2009, 14:20)
Вначале перемещай компоненты, а потом делай layout!
это то понятно, но этож не дело. Я бы сделал break layout но тогда сломаются все слои на форме, что тоже не правильно
или вот к примеру щас не могу сделать чтобы два листбокса соединенных сплиттером показывались в начальный момент с заданными размерами - как ни настраивал они все равно ровно пополам появляются. При этом если уменьшить геоиетри одного то он уменьшится, но второй не займет освободившееся место (а ведь должен ибо лэйаут)
Автор: Litkevich Yuriy 12.1.2009, 15:11
Цитата(kuler @ 12.1.2009, 18:03)
но второй не займет освободившееся место (а ведь должен ибо лэйаут)
это зависит от политики размеров
если есть вопросы по дизаунеру лучше задавай их в подфоруме Qt
Автор: kuler 21.1.2009, 14:27
вот еще минус - нельзя на компоненты вешать уже существующие обработчики - на 5 кнопок один и тотже обработчик (в дизайнере нельзя)
Автор: Litkevich Yuriy 21.1.2009, 14:28
Цитата(kuler @ 21.1.2009, 17:27)
обработчики
что под обработчиками понимается?
Автор: kuler 21.1.2009, 15:34
Цитата(Litkevich Yuriy @ 21.1.2009, 14:28)
что под обработчиками понимается?
в дизайнере сделать connect signal и он slot создаст
Автор: AD 21.1.2009, 15:40
Цитата(kuler @ 21.1.2009, 15:34)
в дизайнере сделать connect signal и он slot создаст
А эти вещи и не предполагаются для дизайнера. Вообще-то для лучшей наглядности и модифицируемости проекта лучше все connect(ы) писать ручками.
Автор: kuler 21.1.2009, 16:04
Цитата(AD @ 21.1.2009, 15:40)
Вообще-то для лучшей наглядности и модифицируемости проекта лучше все connect(ы) писать ручками
ты com не использовал в приличных проектах? а то б знал для чего нужна atl. (в принципе mfc из тойже темы, но таккак считаю её полным авнищем то это плохой пример). Или stl юзал? а то щас у меня код написанный до меня, там надо отсортировать чтото, так ты чо, написан целый метод quicksort, видимо это круто.
Автор: Litkevich Yuriy 21.1.2009, 16:05
Цитата(kuler @ 21.1.2009, 18:34)
и он slot создаст
а где он его создать должен?
Автор: AD 21.1.2009, 16:11
Цитата(kuler @ 21.1.2009, 16:04)
Или stl юзал? а то щас у меня код написанный до меня, там надо отсортировать чтото, так ты чо, написан целый метод quicksort, видимо это круто.
К чему ты это?
А вообще не понимаю с чего ты com приплел? Разве в atl есть дизайнер? Какая quicksort, самописная что-ли?
Можно разжевать так, чтобы чайник вроде меня понял все! Заранее спасибо!
)))
Автор: kuler 21.1.2009, 19:39
Цитата(Litkevich Yuriy @ 21.1.2009, 16:05)
а где он его создать должен?
ну у меня в студии в коде on_aFilter_triggered()
Цитата(AD @ 21.1.2009, 16:11)
с чего ты com приплел? Разве в atl есть дизайнер?
а это тонкий намек, что с твоей позицией и atl не нужна ибо
Цитата(AD @ 21.1.2009, 15:40)
Вообще-то для лучшей наглядности и модифицируемости проекта лучше все connect(ы) писать ручками.
Цитата(AD @ 21.1.2009, 16:11)
Какая quicksort, самописная что-ли?
ну короче просто самописная сортировка
Автор: Litkevich Yuriy 21.1.2009, 20:39
Цитата(kuler @ 21.1.2009, 22:39)
ну у меня в студии в коде on_aFilter_triggered()
не понял, что это и где это?
Дизайнер создает ui-файл (например
foo.ui), затем при сборке из него с помощью
uic создается
ui_foo.h.
А использовать этот файл (либо
foo.ui либо
ui_foo.h) ты можешь самым разным способом. В файле
foo.ui слот не разместишь, т.к. в XML'нике не предусмотрено место для кода (хотя в секцию CDATA можно, наверно, воткнуть). В файл
ui_foo.h тоже нельзя, так как ты можешь хотеть динамически загружать
foo.ui, да
uic перетерает этот файл. Вот и получается, что нет места, где можно было бы разместить пользовательский слот.
Автор: Tonal 22.1.2009, 9:09
2 kuler Это ты о чём говоришь?
Дизайнер Qt вообще не поддерживает создание пользовательских слотов.
Может ты говоришь про интегратор для студии - тут я не в курсях.
Зато в ассистенте описано, что есть 2 метода привязывания слотов к сигналам формы:
1. Явно в коде с помощью connect. При этом можно связать как угодно.
2. Неявно, после создания интерфейса слоты с именами вида on_widgetName_signalName привязываются к сигналам соответствующих объектов.
Понятно, что во втором случае не о каком связывании с множеством виджетов рачи не идёт.
Да и вообще этот способ не рекомендован тролями и создаёт дополнительные трудности при рефакторинге.
Про библиотеки - это ты совсем не в тему.
Одна из основных идей современного программирования - это грамотное разделение обязанностей.
Т.е. грубо говоря, каждый кусок должен отвечать только за одну задачу и быть как можно более самостоятельным - т.е. независимым от остальных кусков.
Если смотреть с этой точки зрения на перечисленные тобой библиотеки, то:
stl - общие куски многих алгоритмов в обобщённом виде.
ATL - обёртка низкоуровневых концепций COM для С++.
Ни та не другая не пытается предоставлять свой сетевой протокол, играть звук или рендерить видио.
Ну и по поводу GUI - он должен быть как можно более развязан от логики. Т.е. все вычисления, проверки и т.д. должны быть оторваны от GUI-я.
Представь, что заказчику понравилась твоя мегапрограмма, и он захотел в следующей версии иметь к ней доступ по вебу с мобильника.
Не устанишь выковыривать логику из всех этих OnClick-ов?
Да и нанять дизайнера, чтобы он нарисовал красивый и удобный интерфейс просто не получится - он должен будет иметь навыки работы со средой и понимание связывания кода с рожей.
Автор: kuler 22.1.2009, 12:00
Цитата(Litkevich Yuriy @ 21.1.2009, 20:39)
не понял, что это и где это?
on_aFilter_triggered()
{
}
это будет то что выполнится по нажатию на экшен aFilter.
Цитата(Tonal @ 22.1.2009, 9:09)
т.е. независимым от остальных кусков.
то есть стл нельзя использовать, ибо идет зависимость?
Автор: AD 22.1.2009, 12:15
Цитата(kuler @ 22.1.2009, 12:00)
Цитата
т.е. независимым от остальных кусков.
то есть стл нельзя использовать, ибо идет зависимость?
Ты неправильно понял мысль. Как раз наоборот. Эти библиотеки предоставляю ОБЩИЙ интерфейс для выполнения каких-то задач. Сами задачи должен реализовывать программист, как здесь были приведен пример, это предоставление сетевого протокола. В Билдере же как раз есть очень большая беда, что GUI-код зависит от логики напрямую. Что является большим минусом Билдера, а не плюса. Поэтому Билдер, возможно, удобно использовать в каких-нибудь очень небольших программах и утилитах - это будет быстрее. Но если следует разработать систему, которая впоследствии будет модифицироваться, при этом, возможно, другими людьми, то он непригоден для этих целей. И приведенные тобой библиотеки, относятся как раз к хорошим библиотекам, потому что в них реализована общая логика для большинства задач. Но при этом в них нет конкретной привязки к GUI или же реализации какой-нибудь конкретной задачи.
Автор: Litkevich Yuriy 22.1.2009, 12:56
Цитата(kuler @ 22.1.2009, 15:00)
on_aFilter_triggered()
{
}
дак где это, в каком файле? ты его сам написал?
Автор: AD 22.1.2009, 13:19
Цитата(Litkevich Yuriy @ 22.1.2009, 12:56)
дак где это, в каком файле? ты его сам написал?
Юра, этот слот пишется в файл класса данного виджета.
Ну то есть в указанный вот так:
class WidgetTest: public ui_WidgetTest, public QMainWindow
{
private:
// .....
protected:
// ..........
public slots:
void on_aFilter_triggered();
};
Не знаю как напрямую в дизайнер Qt, но в студии этот слот можно получить, несколько раз нажав на элемент управления.
При этом явного коннекта нет. Каким-то образом идет связь через moc-файлы (moc_<name>.cpp)
Автор: Litkevich Yuriy 22.1.2009, 13:55
Цитата(AD @ 22.1.2009, 16:19)
Юра, этот слот пишется в файл класса данного виджета.
а как узнать этот файл? я пишу код в блокноте.
А если я вообще не хочу множественное наследование использовать? Куда тогда писать?
А если я использую такой вариант:
...
QWidget *widget = new QWidget;
Ui::CalculatorForm ui;
ui.setupUi(widget);
...
}
Да и файл-то я еще не создал?
Цитата(AD @ 22.1.2009, 16:19)
При этом явного коннекта нет. Каким-то образом идет связь через moc-файлы (moc_<name>.cpp)
это делается с помощью http://doc.crossplatform.ru/qt/4.4.3/designer-using-a-component.html#widgets-and-dialogs-with-auto-connect (
QMetaObject::connectSlotsByName(...))
Автор: AD 22.1.2009, 14:09
Цитата(Litkevich Yuriy @ 22.1.2009, 13:55)
а как узнать этот файл? я пишу код в блокноте.
А если я вообще не хочу множественное наследование использовать? Куда тогда писать?
А если я использую такой вариант:
...
QWidget *widget = new QWidget;
Ui::CalculatorForm ui;
ui.setupUi(widget);
...
}
Да и файл-то я еще не создал?
Если, если.... Если не создал, то и разговора нет!
)))
kuler создал.
Автор: kuler 22.1.2009, 16:48
Цитата(Litkevich Yuriy @ 22.1.2009, 13:55)
а как узнать этот файл?
в студии, есть такой пункт project->add qt gui class после выбора и вписывания имени класса появляются 3 файла - cpp, h, ui.
Цитата(Litkevich Yuriy @ 22.1.2009, 13:55)
А если я вообще не хочу множественное наследование использовать?
в диалоге есть галочка "юзать множественное наследование"
при нажатии правой клавишей на компоненте есть пункт connect signal там выбираешь, жмешь ок и все происходит как в билдере, при этом в cpp и h нет вызова connect
Цитата(Litkevich Yuriy @ 22.1.2009, 13:55)
а как узнать этот файл?
студия сама распознает
Автор: void* 22.1.2009, 16:54
Цитата(AD @ 22.1.2009, 12:19)
При этом явного коннекта нет. Каким-то образом идет связь через moc-файлы (moc_<name>.cpp)
Официальная книжка по Qt4 28 страница
Цитата
In the constructor, we call setupUi() to initialize the form. Thanks to multiple
inheritance, we can access Ui::GoToCellDialog’s members directly. After creat-
ing the user interface, setupUi() will also automatically connect any slots that
follow the naming convention on_objectName_signalName() to the corresponding
objectName’s signalName() signal. In our example, this means that setupUi() will
establish the following signal–slot connection:
connect(lineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(on_lineEdit_textChanged()));
Автор: kuler 22.1.2009, 17:15
Цитата(void* @ 22.1.2009, 16:54)
connect any slots that
follow the naming convention on_objectName_signalName() to the corresponding
objectName’s signalName() signal.
на самом деле это стремно, ибо нельзя красиво назвать обработчик, в билдере можно
Автор: AD 22.1.2009, 17:58
Цитата(kuler @ 22.1.2009, 17:15)
на самом деле это стремно, ибо нельзя красиво назвать обработчик, в билдере можно
Повторюсь, делай коннекты сам и называй, как душе угодно!
Поверь, это лучше. Легче отследить связи!
Автор: kuler 22.1.2009, 18:01
Цитата(AD @ 22.1.2009, 17:58)
Легче отследить связи!
50 коннектов вручную? код засоряется такими действиями
Автор: AD 22.1.2009, 18:04
Цитата(kuler @ 22.1.2009, 18:01)
50 коннектов вручную? код засоряется такими действиями
Если хочешь использовать Qt, то принимай правила игры, которые диктует эта библиотека, либо используй другие библиотеки! Другого вряд ли посоветуешь! Ну вот так она устроена. На всех нельзя угодить.
Не обижайся, просто по-другому не объяснить!
Автор: trdm 22.1.2009, 19:40
Цитата(kuler @ 22.1.2009, 18:01)
код засоряется такими действиями
ие...
а ты не мусори, а пиши по-делу...
Автор: Litkevich Yuriy 22.1.2009, 21:59
kuler, во-первых, применительно к IDE это действительно можно реализовать.
Во-вторых,
Цитата(kuler @ 22.1.2009, 21:01)
50 коннектов вручную? код засоряется такими действиями
именно 50 коннектов, действительно засоряет код, не делай так, используй инструмент (Qt) рационально, пользуйся http://doc.crossplatform.ru/qt/4.4.3/qsignalmapper.html. У меня есть приложение, модно называющееся SCADA система, у меня меньше 10(!) ручных соединений, и использовано 4(!) файла UI.
однако представляющее 11 отчетов и свыше 15 конфигурационных диалогов. Большую часть нагрузки по соединению сигналов взял на себя QSignalMapper
Автор: E5150 14.2.2009, 22:27
Цитата(AD @ 18.12.2008, 12:19)
Цитата(Tonal @ 18.12.2008, 11:58)
http://community.livejournal.com/ru_cpp/348707.html
Неужели ты тоже так считаешь?
На мой взгляд, если элемент, сделанный в дизайнере, описывается 3-5 строчками - то это хороший дизайнер и хорошая библиотека!
Qt - именно такая Тем более, что в Qt это сделано через внятные и качественные классы. Дерево наследования классов прозрачно и понятно. Что может в этом не нравится?
В билдере нет внятных элементов, нет внятного описания, нет понятных методов. Могу сказать, что, когда я начал программить на С/С++, моими первыми компиляторами были Turbo C (полгода), а потом - Visual C++ 6.0 [хороший компилятор даже на сегодняшний день], поэтому я привык делать вещи, которые вообще-то принято делать руками, делать руками (
). Билдер (на нем я тоже программил и, бывает программлю, к сожалнию, приходиться по работе) - это конструктор ЛЕГО, не более того, а если хотите программировать, то с него надо уходить.
я с вами не соглашусь относительно компиляторов, т.к. сам сравнивал VS2005(MFC), VS2008(MFC), CBuilder-2007(VCL) и CBuilder-2009(VCL) на двух разных машинах, компилировал пустое окно, в Билдерах время компиляции (Build - сборка exe-файла) не более 5 секунд, в VS около 30 секунд или более. А вот если создать проект в .NET допустим тоже пустое окно, то оно компилится ну почти мгновенно, но .NET не в счёт, о ней отдельный разговор!
Qt+MinGW компилится очень........ долго...
создавать проекты в CBuilder-2009(VCL) куда более удобно понятно и доступно нежели например, в VS2008(MFC), купил и не жалею! и если получится научится Qt, то возможно буду в ней делать проекты параллельно для Маков и Люнуксов, но на VS уж точно не буду переходить, даже не смотря на то, что она (Express) безплатная!!
Автор: kuler 16.2.2009, 13:58
Цитата(E5150 @ 14.2.2009, 22:27)
в VS около 30 с
пустой проект qt из одной формы тоже секунд 5 билдится
Автор: Tonal 16.2.2009, 15:22
Цитата(E5150 @ 15.2.2009, 1:27)
создавать проекты в CBuilder-2009(VCL) куда более удобно понятно и доступно нежели например, в VS2008(MFC), купил и не жалею! и если получится научится Qt, то возможно буду в ней делать проекты параллельно для Маков и Люнуксов, но на VS уж точно не буду переходить, даже не смотря на то, что она (Express) безплатная!!
Использовать параллельно CBuilder (VCL) для винды и Qt для остальных в принципе можно, если основной код хорошо отделён от гуйни и не использует классов ни VCL ни Qt.
Ну и если вспомнить, что С++ от багланда наиболее глючный и нестандартный из всех распространённых, то придётся довольно, э..., аккуратно писать этот основной код.
Ну а насчёт скрости компиляции - настрой прекомпиленные хедеры и возьми машинку по мощнее.
Автор: AD 16.2.2009, 15:56
Цитата(kuler @ 16.2.2009, 13:58)
Цитата(E5150 @ 14.2.2009, 22:27)
в VS около 30 с
пустой проект qt из одной формы тоже секунд 5 билдится
Приятно, когда человек начинает видеть не только черное и белое!
)))
Автор: kuler 16.3.2009, 17:30
мне кажется или у лэбела нельзя в дизайнере настроить цвет шрифта?
Автор: BRE 16.3.2009, 17:33
Цитата(kuler @ 16.3.2009, 17:30)
мне кажется или у лэбела нельзя в дизайнере настроить цвет шрифта?
StyleSheet ?
Автор: kuler 16.3.2009, 17:34
а еще при попытке через дизайнер подрубить слот пишет что не может найти класс который юзает эту форму - как настроить?
Автор: AD 16.3.2009, 17:51
Цитата
а еще при попытке через дизайнер подрубить слот пишет что не может найти класс который юзает эту форму - как настроить?
Мне удалось исправить такую ошибку одним методом - писать коннекты ручками!
Автор: aus2007 24.3.2009, 18:12
Оригинально
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)