Страница 1 из 1
Помогите новичку в C++
Добавлено: 2010-08-02 22:34:37
Electronik
Всем привет всем!!
Помогите разобраться в C++.
Имеется система на OpenSuSe 11.3 и IDE CodeBlocks с wxWidgets 2.8.
Не могу разобраться как работать с буфером обмена.
Есть функция wxClipboard.
Для записи в буфер есть пример:
Код: Выделить всё
// Write some text to the clipboard
if (wxTheClipboard->Open())
{
// Data objects are held by the clipboard,
// so do not delete them in the app.
wxTheClipboard->SetData(new wxTextDataObject()));
wxTheClipboard->Close();
}
Для чтения из оного
Код: Выделить всё
// Read some text
if (wxTheClipboard->Open())
{
if (wxTheClipboard->IsSupported(wxDF_TEXT))
{
wxTextDataObject data;
wxTheClipboard->GetData(data);
wxMessageBox(data.GetText());
}
wxTheClipboard->Close();
}
Но вот в чем проблема:
Создал в эдиторе гуя, меню "Edit", а в нём три пункта Cut, Copy, Paste.
Потом Функции на кнопочки вида:
[/code]
void catalogFrame::OnEditCopy(wxCommandEvent & event)
{
}
void catalogFrame::OnEditPaste(wxCommandEvent& event)
{
}
[/code]
Подключил файл clipbrd.h.
Вставил в функцию кнопок строки из примера и при компиляции валяться ошибки.
Код: Выделить всё
/home/***/projects/catalog/catalogMain.cpp||In member function ‘void catalogFrame::OnEditCopy(wxCommandEvent&)’:|
/home/***/projects/catalog/catalogMain.cpp|154|error: expected type-specifier before ‘wxTextDataObject’|
/home/***/projects/catalog/catalogMain.cpp|154|error: expected ‘)’ before ‘wxTextDataObject’|
/home/***/projects/catalog/catalogMain.cpp|154|error: no matching function for call to ‘wxClipboard::SetData(int*)’|
/usr/include/wx-2.8/wx/gtk/clipbrd.h|33|note: candidate is: virtual bool wxClipboard::SetData(wxDataObject*)|
/home/electronik/projects/catalog/catalogMain.cpp|154|error: expected ‘;’ before ‘)’ token|
||=== Build finished: 5 errors, 0 warnings ===|
P.S.: Прошу сильно не пинать, я еще только учусь, перелопатил несколько книг, но так и не нашёл как реализовать copy/paste
Re: Помогите новичку в C++
Добавлено: 2010-08-03 8:22:52
hizel
еще раз прочитайте документацию, начинать учить С++ с wxWidgets очень странно
Re: Помогите новичку в C++
Добавлено: 2010-08-03 8:47:56
Fastman
Во первых. wxWidgets - очень странный выбор.
Пока вы выдрали куски из контекста я вижу первую ошибку.
Из документации
http://docs.wxwidgets.org/stable/wx_wxc ... ardsetdata
Я вижу что у wxClipboard::SetData нет конструктора по умолчанию.
И выглядит объявление следующим образом:
bool SetData
(wxDataObject* data)
А у вас почему то
wxTheClipboard->SetData(new wxTextDataObject
()));
Мало того, в документации написано что загогловочник оюъявляется так:
Вообщем приводите все в порядок, или сообщайте дополнительную инфу.. гадать - очень сложно.
Ну и было бы неплохо чтобы в 21 век люди юзали каваный Qt

Re: Помогите новичку в C++
Добавлено: 2010-08-03 9:40:35
hizel
C++ не нужен

Re: Помогите новичку в C++
Добавлено: 2010-08-03 9:42:24
Electronik
hizel писал(а):еще раз прочитайте документацию, начинать учить С++ с wxWidgets очень странно
wxWidgets кросс-платформенный, и в инете написано что он простой.
Fastman писал(а):
Ну и было бы неплохо чтобы в 21 век люди юзали каваный Qt

Или мне кажется или Qt тяжеловат в плане производительности? / *Сужу по четвёртым кедам. Без 2-ух гигов оперативы и 2-ух ядер они еле шевеляться*/
Re: Помогите новичку в C++
Добавлено: 2010-08-03 9:52:55
Fastman
hizel писал(а):C++ не нужен

Хиз, давай не будем а то я тебя затроллю

Re: Помогите новичку в C++
Добавлено: 2010-08-03 9:57:25
Fastman
Electronik писал(а):hizel писал(а):еще раз прочитайте документацию, начинать учить С++ с wxWidgets очень странно
wxWidgets кросс-платформенный, и в инете написано что он простой.
Fastman писал(а):
Ну и было бы неплохо чтобы в 21 век люди юзали каваный Qt

Или мне кажется или Qt тяжеловат в плане производительности? / *Сужу по четвёртым кедам. Без 2-ух гигов оперативы и 2-ух ядер они еле шевеляться*/
я не против wxWidgets. Но это довольно устаревшая технология.
А при чем ту Qt к кедам ?

Я на чистом C++ сча наваяю так что комп будет ворочать данными до второго пришествия

Не слушайте никого. Для кроспратформа GUI пока лучше чем Qt ничего не придумано

Мало того, нужно иметь ввиду что Qt это не только GUI, это мощный фреймворк который включает в себя инструменты для работы с сетью, базами данных, xml, графикой итд итп.
Ведь лучше не тащить в свое приложение кучу разрозненных библиотек, а юзать все от "одного производителя"

В любом случае - не навязываю. Выбор всегда есть

Re: Помогите новичку в C++
Добавлено: 2010-08-03 10:18:43
hizel
Qt это не только GUI, что составляет немалую часть профитов от его кросплатформенности
также там впендюрили неплохую GUI в состав SDK
Re: Помогите новичку в C++
Добавлено: 2010-08-03 10:56:17
Electronik
Т.е лучше пересесть на Qt и учиться в нём? И код будет одинаково компилиться и писаться как для *nix так и для Win?
Re: Помогите новичку в C++
Добавлено: 2010-08-03 11:04:10
Fastman
Electronik писал(а):Т.е лучше пересесть на Qt и учиться в нём? И код будет одинаково компилиться и писаться как для *nix так и для Win?
Код написанный на Qt, на 90% вообще без проблем собирается в Win/Lin/MacOSX/BSD
Нужно конечно помнить что все равно есть нюансы каждой из операционных систем. Полного счастья не бывает.
Но по сравнению с vxWidget его нааамного больше

Опять же. Выбор только твой.
В защиту еще хочу сказать что Qt идет с просто охренительным хелпом. Со своей IDE и просто офигительным количеством примеров на каждый чих

Re: Помогите новичку в C++
Добавлено: 2010-08-03 12:57:42
Гость
>Electronik
оригин,ально братся изучать С++ начиная с wxWidget
С/С++ сначала досконально изучите
и научитесь читать документацию
большинство ответов никто никогда не знает
но всегда можно прочитать документацию и найти ответ
>Fastman
ненадо наговаривать на wxWidget
она тоже не плоха, достаточно посмотреть на размер wxWidget и размеры QT
QT хорош был пока его не купила нокия
Re: Помогите новичку в C++
Добавлено: 2010-08-03 13:20:43
Fastman
Гость писал(а):
оригин,ально братся изучать С++ начиная с wxWidget
С/С++ сначала досконально изучите
и научитесь читать документацию
большинство ответов никто никогда не знает
но всегда можно прочитать документацию и найти ответ
Поддерживаю.
>Fastman
не надо наговаривать на wxWidget
она тоже не плоха, достаточно посмотреть на размер wxWidget и размеры QT
QT хорош был пока его не купила нокия
Я нигде кстати не наговаривал.
При чем тут размеры ? Еще раз, сравните функционал, и будет понятно почему.
Qt после покупки Nokia- похорошел и повзрослел. Это мое ИМХО
Что бы было понятно что сравнивать, функционал 2-х основных классов Qt:
QtCore :
http://doc.qt.nokia.com/4.6/qtcore.html
QtGUI :
http://doc.qt.nokia.com/4.6/qtgui.html
Код: Выделить всё
-rw-rw-rw- 1 user group 8581120 Jul 27 10:53 QtGui4.dll
-rw-rw-rw- 1 user group 2392064 Jul 27 10:44 QtCore4.dll
при этом офигенном функционале размере QtCore 2.4 мегабайта и QtGUI 8.5 мегабайт.
И я не понимаю как такой размер библиотек может повлиять на выбор фреймворка для средне-статистической рабочей станции.
Для эмбеда, понятно, другие.
Но мы все в курсе что есть версии Qt для мобильного применения ?

Re: Помогите новичку в C++
Добавлено: 2010-08-03 13:26:31
Гость
я не одобряю дробления QT на библиотеки
ты когда нибудь видел приложения которое использует например QT-Network но не использует QT-GUI ?
я не видел
и почти любое QT приложение использует весь функционал QT начиная от xml заканчивая графикой
так был ли смысл дробить?
небыл
дробление - это путь в пропасть
Re: Помогите новичку в C++
Добавлено: 2010-08-03 13:37:10
Fastman
Гость писал(а):я не одобряю дробления QT на библиотеки
ты когда нибудь видел приложения которое использует например QT-Network но не использует QT-GUI ?
я не видел
Я такое писал. Очень удобно. Дело даже не в том что МНЕ удобно.
Если в проекте используется Qt, зачем выдумывать ? Все единообразно понятно без вылетов из общей идеологии.
Я взял и написал демон для BSD который юзает QtCore и QtNetwork.
Пару лет как "трудится" это дело в "черной" не обслуживаемой коробке 24/7 на реальном производстве.
и почти любое QT приложение использует весь функционал QT начиная от xml заканчивая графикой
так был ли смысл дробить?
Я не буду спорить. А тем более указывать авторам разработок что и как им использовать.
Модульность - удобно. Зачем мне нафиг вебкит в одном модуле со всем ?
Глупость какая.
дробление - это путь в пропасть
Не буду разводить холивары. У каждого свое понятие.
Для всего есть свое применение.
Это же инструмент ! И вопрос, молотком по гвоздю бить или себе по яйцам, решается только тобой
Был рад выслушать все мысли. Я не против никаких других разработок. Если оно есть - значит это кому то надо.
Но думаю разжигать флейм - не стоит.
А на конкретные вопросы отвечу если интересно

Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:02:27
Electronik
Гость писал(а):>Electronik
С/С++ сначала досконально изучите
Этим сейчас и занимаюсь)) Но хочется на примере постигнуть дзен. Просто копипастить примеры из книг смысла нет, а когда пишешь что то своё, то так проще, интереснее и постепенно обо всём узнаёшь.
Гость писал(а):
и научитесь читать документацию
большинство ответов никто никогда не знает
но всегда можно прочитать документацию и найти ответ
Документацию я читаю , только не всё еще могу понять.
Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:06:21
Гость
Этим сейчас и занимаюсь)) Но хочется на примере постигнуть дзен. Просто копипастить примеры из книг смысла нет, а когда пишешь что то своё, то так проще, интереснее и постепенно обо всём узнаёшь.
даже если вы научитесь что то компилять или писать на wxWidget
С++ вы врядли изучите
не с того начали имхо
Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:08:50
Electronik
Гость писал(а):Этим сейчас и занимаюсь)) Но хочется на примере постигнуть дзен. Просто копипастить примеры из книг смысла нет, а когда пишешь что то своё, то так проще, интереснее и постепенно обо всём узнаёшь.
даже если вы научитесь что то компилять или писать на wxWidget
С++ вы врядли изучите
не с того начали имхо
А с чего тогда начать?

Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:14:15
Fastman
Electronik писал(а):Гость писал(а):Этим сейчас и занимаюсь)) Но хочется на примере постигнуть дзен. Просто копипастить примеры из книг смысла нет, а когда пишешь что то своё, то так проще, интереснее и постепенно обо всём узнаёшь.
даже если вы научитесь что то компилять или писать на wxWidget
С++ вы врядли изучите
не с того начали имхо
А с чего тогда начать?


Если пока не знаешь с чего начать - значит надо поставить цель.
Ни один фреймворк независимо от его крутости не поможет тебе если не знаешь что хочешь.
Это просто обертки которые упрощают работу с тем что УЖЕ понимаешь. По другому никак.
Так что если пока трудности с пониманием основ - дальше лезть не стоит.
Вообщем в демагогию ударились. Давайте народ по конкретике уж.
Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:16:38
paradox
А с чего тогда начать?
1 перестать оверквотить
2 научится проецировать реальный мир на программирование и обратно
3 найти книгу по стандарту С++ и изучить его, переодически заглядывать
4 профит
все остальное QT, wxWidget и прочее уже сможете програмировать просто заглядывая в онлан справочник+чуть чуть ознакомившись с примерами
Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:20:18
Гость
2 научится проецировать реальный мир на программирование и обратно
называя класс телевизор, а функции кнопки
еще не означает что вы правильно научились проецировать
наличие разных моделей телефизоров, размеры, местоположение и количество кнопок тоже нужно предусматривать))
все программирование сводится к тому
1 получаешь от заказчика задание к примеру написать веб сервер
2 ищешь проекцию в живом мире которая будет отождесвлять этот веб сервер
3 описываешь ее повидение
4 профит
уметь писать класс webserver И функции send, recv
это бестолковый быдло кодинг
Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:21:34
Fastman
Гость писал(а):
1 перестать оверквотить
2 научится проецировать реальный мир на программирование и обратно
3 найти книгу по стандарту С++ и изучить его, переодически заглядывать
4 профит
все остальное QT, wxWidget и прочее уже сможете програмировать просто заглядывая в онлан справочник+чуть чуть ознакомившись с примерами
Согласен. Добавил бы еще один пункт

5. Подписываться хотя бы своим ником.
Проходящие гости с правильными мыслями должны быть названы

Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:23:16
Electronik
Fastman писал(а):

Если пока не знаешь с чего начать - значит надо поставить цель.
Цель есть, понять и написать программу которая работает с серверам баз данных(Mysql,FB,IB,MSSQL), а так же научиться нормально строить сами базы.
Fastman писал(а):
Ни один фреймворк независимо от его крутости не поможет тебе если не знаешь что хочешь.
.
Знаю))
Гость писал(а):А с чего тогда начать?
1 перестать оверквотить
2 научится проецировать реальный мир на программирование и обратно
3 найти книгу по стандарту С++ и изучить его, переодически заглядывать
4 профит
все остальное QT, wxWidget и прочее уже сможете програмировать просто заглядывая в онлан справочник+чуть чуть ознакомившись с примерами
Вот первый пункт совсем не понял. А второй это Вы имели ввиду классификацию объектов?
Re: Помогите новичку в C++
Добавлено: 2010-08-03 14:27:14
Гость
Вот первый пункт совсем не понял.
не надо нажимат кнопочку цитировать, когда и так понятно с кем общаетесь и сообщения следуют друг за другом
А второй это Вы имели ввиду классификацию объектов?
расшифровал, смотри выше
Re: Помогите новичку в C++
Добавлено: 2010-08-03 15:50:04
Electronik
Всем кто отозвался огромное спасибо, что наставили на путь истинный))))
Re: Помогите новичку в C++
Добавлено: 2010-08-18 16:10:53
Dambo
Electronik писал(а):Всем кто отозвался огромное спасибо, что наставили на путь истинный))))
http://forum.lissyara.su/viewtopic.php?f=16&t=24154 Прочитай.
Qt хорошая вещь начинать с неё нельзя, как и с других либ! Просто тупо половины вещей которые как то сделаешь понять не сможешь, что потом очень больно обернётся для тебя...