Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
5.10.2009, 10:42 | Перевод в символа и строки в двоичный код |
|
++Norton++, | ||
4.10.2009, 17:34 | Запаковка в dll шаблонных классов | Проведу эксперимент. Отпишусь. tree.h
objectstree.h
Это декларация нового типа (класса), код для него генерироваться не будет. Для его использования компилятору потребуется сам файл objectstree.h и файл с описание шаблона tree.h, который включается в objectstree.h А весь код будет разворачиваться в пользовательских файлах, где будет использоваться (создаваться) объект класса ObjectsTree. А вот если в класс ObjectsTree добавить методы, например appendObject(), removeObject(), тогда эти методы попадут в библиотеку и будут экспортированы. Также там развернутся все необходимые методы шаблона Tree, если будут использоваться. |
Elfinit, | ||
3.10.2009, 19:26 | QString | pelican, | |||
2.10.2009, 9:20 | QT 4.3.0 не найден файл QSystemTrayIcon | В общем да. У нас просто правила дурацкие: для вывода использовать консоль. ... если при запуске сервер скрывается в Tray и показывает консольное окно лишь по требованию пользователя +10%; Можно создать окно на базе QListView, в качестве модели использовать QStringListModel. В эту модель добавляются диагностические строки. Когда пользователь захочет посмотреть диагностику (из меню QSystemTrayIcon), то открывать это окошко. Если для вывода диагностики на консоль используются qDebug(), qWarning(), есть простой способ сделать такое переопределение. Но когда я пытаюсь показать иконку в трее консоль просто закрывается!!! Ты бы еще код показал. |
Cergey, | ||
2.10.2009, 9:07 | QT 4.3.0 не найден файл QSystemTrayIcon | В gui переводить(хотя я не знаю как консольку там эмулировать) или может есть что-то уже другое. BRE, а где переменная QT в pro файле??? Я же написал, если переменная QT в pro файле явно не прописана, то по умолчанию используются две библиотеки: core и gui (все это описано в assistent). Поясни, что это за сервер, для чего ты используешь консоль? Просто выводишь в ней сообщения? Что бы перевести приложение в GUI вполне возможно хватит использования QApplication вместо QCoreApplication, переключения вывода сообщений из консоли в окно, и добавления иконки в систем трей. |
Cergey, | ||
1.10.2009, 6:52 | Смена курсора на виджете | Т.е. при addWidget на самом деле на сцену вешается GraphicsItem? Да, посмотри что возвращает addWidget: QGraphicsProxyWidget * QGraphicsScene::addWidget ( QWidget * widget, Qt::WindowFlags wFlags = 0 ) И вообще, зачем ему менять курсор на дефолтный? Потому что, если для элемента не задан курсор, то использует дефолтный. Как мне кажется, сначала отрабатывает обработчик события перемещения мыши для твоего виджета (там ты меняешь курсор на нужный), а потом отрабатывает этот же обработчик в view (и меняет курсор на тот который задан для элемента и если он не задан, то дефолтный). Посмотри исходники, возможно это можно обойти. |
Elfinit, | ||
25.9.2009, 19:47 | Корректное удаление виджета | Я чуть выше писал, что нельзя удалять объект из самого себя, для этого как раз подходит deleteLater. А здесь, не явно, но именно это и происходит. Из цикла обработки событий вызывается обработчик события таймера для объекта movie, он посылает сигнал frameChanged, это разворачивается в прямой вызов метода myslot2, из которого мы убиваем объект movie. |
igor_bogomolov, Litkevich Yuriy, | ||
13.9.2009, 15:10 | работа с процессами | abra, | |||
8.9.2009, 19:08 | QList <internal error> | В конструкторе и операторе копирования в циклах не нужно вычитать единицу, у тебя же условие <. Раскрывающийся текст
|
kemiisto, | ||
2.9.2009, 18:28 | СИГНАЛ в главном потоке, СЛОТ - в дочернем | pelican, маленькое замечание, слот вызовется не в созданном потоке, а в главном потоке. Уточнение: слот будет выполняться в контексте того потока из которого будет вызван. Если будет вызван из run() потока, то выполнится в контексте потока. Если объект наследник от QThread будет перемещен в контекст потока (QObject::moveToThread), то так-же будет выполняться в контексте потока. |
pelican, | ||
27.8.2009, 12:50 | typeid(*<class>).name() | Похоже что 15 это длина имени класса, а вот кто ее печатает или добавляет к имени пока не смотрел. Точно, это длина имени класса. Проверял на gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2). Причем если в typeid передать указатель на объект, то впереди этой сигнатуры добавляется 'P' (P6Person). Для стандартных типов длина не указывается, т.е. int - 'i' int* - 'Pi' И вот еще ссылку нашел: http://bytes.com/topic/c/answers/139862-typeinfo Если используются namespace, то впереди будет идти N<длина имени namespace><имя namespace>. |
ЙаМайскЫйПчОЛ, | ||
18.8.2009, 16:56 | Остановка потока | Не увидел на что влияет stopped. Попробуй добавить wait, для того что-бы убедиться что нить завершилась.
|
AD, | ||
11.8.2009, 18:14 | Ошибка при работе с boost::any | Об этом подумал. Какой класс буста использовать? Как приблизительно это можно реализовать? Спасибо за помощь!!! Мне понравилось одно решение с фабриками (подсмотрел на Inside C++). Я его немного переделал, что бы в качестве ключа можно было использовать не только строки. Раскрывающийся текст
Как это использовать: Раскрывающийся текст
|
AD, | ||
11.8.2009, 12:17 | Ошибка при работе с boost::any | Примерно так: Спасибо. А вопрос такой, а можно ли это сделать так, чтобы при добавлении, например, еще какого-то типа данных, ну например топографии другого формата, не надо было бы еще одну ветку else делать? Т.е. смысл-то этого вектора с any, чтобы он автоматом определял тип, а не при непосредственном приведении. Поэтому я тебе и написал, что не могу понять для чего ты все это делаешь. Теперь понял. IMHO any не очень подходит для таких задач. Можно попробовать получать имя типа из type_info, но все равно придется городить свой if для каждого типа. При добовлении нового типа, нужно будет дописывать свою ветвь. Может лучше воспользоваться фабриками. Для каждого типа карты делается специальный класс loader, который умеет ее загружать. Все они регистрируются в фабрике и она создает объект-загрузчик в зависимости от указанного типа. |
AD, | ||
10.8.2009, 8:20 | Ошибка при работе с boost::any | А как именно поправить я не понял? Прости, если донимаю... Примерно так:
|
AD, | ||
9.8.2009, 19:23 | Qt + Bison, ошибки компиляции. решения/предостережения. | Litkevich Yuriy, | |||
30.7.2009, 13:50 | Аналог Q_PROPERTY | Более подробный рабочий пример: Раскрывающийся текст
|
igor_bogomolov, | ||
30.7.2009, 12:20 | Аналог Q_PROPERTY | Набросаю прямо здесь небольшой пример:
|
igor_bogomolov, | ||
30.7.2009, 12:01 | Аналог Q_PROPERTY | Ничего не получается. Не могу разобраться. Только начал разбираться с boost. Сложен он для меня ((( register_property("TEST",boost::bind(&base1::setTestProp), boost::bind(&base1::getTestProp)); Выдает кучу ошибок. Не пойму как переделать надо? Поможите, а? ))) Попробуй так: register_property( "TEST", boost::bind( &base1::setTestProp, this ), boost::bind( &base1::getTestProp, this ) ); |
igor_bogomolov, | ||
29.7.2009, 16:41 | QDrag и перетаскивание из Q*View в Explorer | Экранируй '\' -> '\\'
|
Stanislaus, | ||
29.7.2009, 12:43 | Char и QString | Увидел название темы и решил задать вопрос про char и QString. Как загнать элемент QString в QDataStream через оператор <<? Вариантов перегрузки у него куча, но для QString'а нету. Напрашивается вариант перегрузить его вручную. Может есть уже написанные варианты или вообще другой способ? Как это нет, все есть. QDataStream & operator<< ( QDataStream & stream, const QString & string )ж |
posi4, | ||
27.7.2009, 10:17 | Перемещение QFrame | AD, | |||
23.7.2009, 11:34 | Ошибка при вызове сигнала | Убрать const: bool GraphicDisplay::isViewfinder(const QPoint& pos) const |
AD, | ||
23.7.2009, 10:30 | Пересечение визира с графиком | Разбор лог-файла. Оттуда считываю данные. По этим данным и строю график. Технология та еще.... У тебя есть коллекция значений Y при определенном X, которые ты соединяешь прямыми? Формулу прямой знаем, выбираем координаты начала и конца линии из диапазона в котором визир. Подставляем их в формулу и получаем значение Y. |
AD, | ||
21.7.2009, 13:37 | Определение точных координат на графике в контекстном меню | У нас есть виджет на котором рисуется график. Его размер в точках - sizeWidget, пусть будет sizeWidget.x = 200, sizeWidget.y = 100. Есть позиция мыши внутри этого виджета, пусть будет posMouse.x = 180, posMouse.y = 23. Есть размер системы координат графика sizeGraph, пусть будет sizeGraph.x = 1000, sizeGraph.y = 200. Что бы получить значение координаты мыши делаем: point.x = posMouse.x * sizeGraph.x / sizeWidget.y -> point.x = 180 * 1000 / 200 = 900. График рисуется по формуле y = f(x), подставляем полученное значение по горизонтали и получаем point.y. |
AD, | ||
Текстовая версия | Сейчас: 24.4.2024, 5:59 |