Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Qt (Trolltech Qt, Nokia Qt, Digia Qt)

Автор: KADABRA
Дата сообщения: 16.01.2005 10:23
Офф сайт http://qt.digia.com/


Цитата:
Qt is a complete C++ application framework, including a class library and tools for cross-platform development


Qt это библиотека классов и инструментов, полностью реализованый на С++, предназначенная для создания кроссплатформенных приложений.



Доки:
http://www.opennet.ru/docs/RUS/qt3_prog/ Зеркало: http://linuxcenter.ru/lib/books/qt3/
http://qt.osdn.org.ua/
http://hardclub.donntu.edu.ua/projects/qt/pages/index.htm
http://www.prog.org.ru/ - Qt форум
...
FAQ:
1.

-------
Варез
-------
Автор: Swappp
Дата сообщения: 16.01.2005 17:24
http://qt.osdn.org.ua/
http://hardclub.donntu.edu.ua/projects/qt/pages/index.htm

В FAQ наверно надо добавить, как работать с русским (я по началу долго копался). В общем новички задавайте вопросы Ну и шапку надо прикрутить.
Автор: KADABRA
Дата сообщения: 16.01.2005 19:03
Добавлено:
Первая проблема: не устанавливается QMsNetSetup.msi для MSVisualStudio 2003.
Пишет, что инсталяция была прервана.
Qt 3.3.3; MSVStudio 2003 + VA + Wise + BoundsChecker.
Вторая проблема: при попытке скомпилировать в том-же MSVisualStudio Qt прогу, выдаётся такаое сообщение:
Цитата:
qt1 error LNK2019: unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup

Win32 project
Qt include & lib в путях прописаны, линкую с qt-mt333.lib.

Добавлено:
Проблема с unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup решена: надо было qtmain.lib подключить.
И ещё конфликт с msvcrt.lib, по этому /NODEFAULTLIB:msvcrt.lib

Добавлено:
Swappp

Цитата:
как работать с русским

А как? Мне ещё не приходилось.
И под Фрёй 5.3 нет qmake'а, а сам Qt (lib + include) есть.
А либы Qt , скомпилированные Мелко-мягким cl.exe в MinGW компиляторе использовать можно?
И всё-таки с QMsNetSetup.msi вопрос.

Добавлено:
Удалось утановить QMsNetSetup.msi, но он ищет include'сы в C:\Qt\3.3.3\include, а они с E:\Qt\3.3.3\include. Как настроить?
Автор: Swappp
Дата сообщения: 16.01.2005 19:53
KADABRA

Цитата:
Удалось утановить QMsNetSetup.msi, но он ищет include'сы в C:\Qt\3.3.3\include, а они с E:\Qt\3.3.3\include. Как настроить?

У тебя QTDIR правильно установлена? Попробуй выполнить "echo %QTDIR%" в cmd.

Цитата:
А как? Мне ещё не приходилось.

Повезло Во-первых если хочешь, что бы сообщения интерфейса в CPP файлах были по русски их надо сохранять в UTF-8. Во-вторых если делаешь многоязычную программу, то Qt Linguist это вещь В-третих "QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());" не помешает, иначе будут проблемы с БД не поддерживающими Unicode, я в свое время в поисках этой строчки потратил не мало времени, в итоге помогло, то, что есть исходники Хотя решение получилось не совсем переносимым... т.к. в Linux могут быть локали UTF-8 или KOI8-r, а вот CP1251 врядли, а mysql по умолчанию принимает именно в cp1251... ну в общем RTFM на тему QTextCodec::setCodecForCStrings().

Добавлено:

Цитата:
И под Фрёй 5.3 нет qmake'а, а сам Qt (lib + include) есть.

Странно... А как ставил? По плану qmake нужен для сбора самого qt, так что при установки из портов должен быть.
Автор: Demetrio
Дата сообщения: 16.01.2005 20:24
KADABRA
/usr/ports/devel/qmake
Автор: WiseAlex
Дата сообщения: 17.01.2005 11:23
Для win32
Есть ли возможность статической линковки, т.е. с включением всех импортируемых из qt функций непосредственнов в exe (как в mfc), чтобы не тянуть с собой qt-шную dll
Автор: Swappp
Дата сообщения: 17.01.2005 19:12
WiseAlex

Цитата:
Есть ли возможность статической линковки, т.е. с включением всех импортируемых из qt функций непосредственнов в exe (как в mfc), чтобы не тянуть с собой qt-шную dll

Если не ошибаюсь есть, во время установки, перед компиляцией можно выбрать компоненты и некоторые параметры сборки в том числе и static/shared. На практике не пробовал.

Добавлено:
В инсталляторе пишут:

Цитата:
All applications created with a static library will be at least 1.5MB big. It is not possible to build or use any components or plugins with a static Qt library!
Автор: KADABRA
Дата сообщения: 17.01.2005 20:58
Swappp

Цитата:
Попробуй выполнить "echo %QTDIR%" в cmd.

Спасибо. Поправил.
Demetrio

Цитата:
/usr/ports/devel/qmake

В портах есть, но не установлен по дефолту.

Возникло куча траблов с Qt. Но всё по порядку.
1. Какой компилятор лучше для Qt (Win 32) Мелкомягий или MinGW (gpp)?
2. При попытке откомпилировать код (http://linuxcenter.ru/lib/books/qt3/qt3_6.phtml#SUBCLASSINGQDIALOG) выдаётся ошибка типа parrent class QDialog not defined, хотя #include <qdialog.h>
3. При попытке использования QColorDialog::getColor ругается, что e:\WorkSCR\CppSRC\qt1\main.cpp(128): error C2653: 'QColorDialog' : is not a class or namespace name
e:\WorkSCR\CppSRC\qt1\main.cpp(130): error C3861: 'getColor': identifier not found, even with argument-dependent lookup
но #include <qcolordialog.h> ???
Автор: Swappp
Дата сообщения: 17.01.2005 22:05
KADABRA

Цитата:
1. Какой компилятор лучше для Qt (Win 32) Мелкомягий или MinGW (gpp)?

ИМХО MS. Хотя всеравно

Цитата:
2. При попытке откомпилировать код (http://linuxcenter.ru/lib/books/qt3/qt3_6.phtml#SUBCLASSINGQDIALOG) выдаётся ошибка типа parrent class QDialog not defined, хотя #include <qdialog.h>
3. При попытке использования QColorDialog::getColor ругается, что e:\WorkSCR\CppSRC\qt1\main.cpp(128): error C2653: 'QColorDialog' : is not a class or namespace name
e:\WorkSCR\CppSRC\qt1\main.cpp(130): error C3861: 'getColor': identifier not found, even with argument-dependent lookup
но #include <qcolordialog.h> ???

Мог бы и в одну проблему объеденить
А на include не ругается? Как компилируешь? Напиши по подробнее. Похоже, что у тебя не include'тся заголовки.

Добавлено:
Но с другой стороны в начале выполняется препроцессор, которы выполняет макросы и по плану его ошибки должны привести к остановки процесса компиляции...
еще в этих заголовках есть такая строчка:

Код: #ifndef QT_NO_DIALOG
//и
#ifndef QT_NO_COLORDIALOG
Автор: KADABRA
Дата сообщения: 18.01.2005 09:13
Swappp

Цитата:
А на include не ругается?

Нет, компилирую из MSVS все path'ы и lib'ы прописаны.

Цитата:
#ifndef QT_NO_DIALOG
//и
#ifndef QT_NO_COLORDIALOG

есть.
И ещё
Код:
#ifndef QT_H
#include "qdialog.h"
#endif // QT_H
Автор: KADABRA
Дата сообщения: 18.01.2005 18:17
Ура! Проблема с QColorDialog::getColor решена пересборкой Qt.
Автор: Maxer
Дата сообщения: 18.01.2005 19:01

Цитата:
ИМХО MS. Хотя всеравно

На MinGW QT вобще не компилится. Т.е. компилится очень долго
Автор: Swappp
Дата сообщения: 18.01.2005 19:16
KADABRA

Цитата:
Цитата:
#ifndef QT_NO_DIALOG
//и
#ifndef QT_NO_COLORDIALOG

есть.
И ещё
Код:

#ifndef QT_H
#include "qdialog.h"
#endif // QT_H


есть.

а их и не могло не быть
Я написал, про то, в каких условиях может включатся qdialog.h, но не объявлятся класс...

p.s. А никто не хочет шапку прикрутить?
Автор: KADABRA
Дата сообщения: 18.01.2005 19:43
Maxer
У меня на MS cl.exe ~ 15-25 мин (Athlon 2500@3200 / 512 DDR 400 RAM).

Swappp

Цитата:
а их и не могло не быть

Я так написал, вдруг qdialog.h не включался
Первый раз просто криво установил.


Цитата:
А никто не хочет шапку прикрутить?

Я ещё вчера Svarg'e запостил

Добавлено:
Но... ыыы. ОбновленияПоследняя запись Выборы Президента Украины 2004 - 31-12-2004 06:15
Автор: KADABRA
Дата сообщения: 23.01.2005 11:58
А русская дока по Qt socket's есть?
Автор: KADABRA
Дата сообщения: 27.01.2005 17:25
Ещё дока http://www.opennet.ru/docs/RUS/qt3_prog/
Автор: Swappp
Дата сообщения: 01.02.2005 19:27
А никто не пробовал делать QToolBar вертикальным, когда он не прелеплен (undock)?
Смотрел исходники Qt и увидел следущее:

Цитата:
Qt::Orientation QDockWindow::orientation() const
{
if ( dockArea )
return dockArea->orientation();
if ( ::qt_cast<QToolBar*>(this) )
return Horizontal;
return ( ((QDockWindow*)this)->boxLayout()->direction() == QBoxLayout::LeftToRight ||
((QDockWindow*)this)->boxLayout()->direction() == QBoxLayout::RightToLeft ?
Horizontal : Vertical );
}

(QToolBar основан на QDockWindow)
т.е. выход вижу один - Copy&Past и переименовать класс orientation() не virtual и вызывается из QDockWindow, так что перезагрузить не получится
В Scribus такое сделанно не очень удачным способом:

Код: ...
connect(this, SIGNAL(placeChanged(QDockWindow::Place)), this, SLOT(Docken(QDockWindow::Place)));
...
void WerkToolB::Docken(QDockWindow::Place p)
{
setOrientation(p == InDock ? Horizontal : Vertical);
}
...
Автор: KADABRA
Дата сообщения: 05.02.2005 23:50
Swappp
Никогда так не экспериментировал.
А у меня снова трабла: не работает элементарный toggled сигнал в на кнопке.
Автор: Swappp
Дата сообщения: 06.02.2005 00:57
KADABRA

Цитата:
А у меня снова трабла: не работает элементарный toggled сигнал в на кнопке.

А поподробнее? Код хотя бы преведи
Автор: KADABRA
Дата сообщения: 06.02.2005 10:11
Swappp
Есть кнопка moreButton и два groupBox'а:

Код:
connect( moreButton, SIGNAL( toggled(bool) ), secondaryGroupBox, SLOT( setShown(bool) ) );
connect( moreButton, SIGNAL( toggled(bool) ), tertiaryGroupBox, SLOT( setShown(bool) ) );
Автор: Swappp
Дата сообщения: 08.02.2005 00:09
http://www.trolltech.com/newsroom/announcements/00000192.html
Хорошая новость, Qt 4 будет доступен под двойной лицензией для Windows.
Автор: KADABRA
Дата сообщения: 08.02.2005 09:24
Swappp
Надеюсь, что GPL версия не будет урезана.
_______
Будет
Автор: KADABRA
Дата сообщения: 08.02.2005 20:02
Хмм. А возможно ли в QTextEdit вставлять картинки? Если да, то как?
Автор: Swappp
Дата сообщения: 08.02.2005 23:15
QTextEdit отображает и редактирует HTML, значит можно вставить тег img.

Добавлено:
Хотя у меня показываются только серые плашки
Автор: KADABRA
Дата сообщения: 09.02.2005 09:32
Swappp

Цитата:
вставить тег img

А куда src=?
Автор: KADABRA
Дата сообщения: 12.02.2005 12:30
Такс. src можно на отделную имейджку поставить.
Следующий вопрос: какую книгу по Qt лучше брать?
Автор: Swappp
Дата сообщения: 12.02.2005 16:56
KADABRA

Цитата:
Следующий вопрос: какую книгу по Qt лучше брать?

А что, их много? Есть официальная книга в русском переводе, свободно доступна для скачивания на opennet.ru
Автор: KADABRA
Дата сообщения: 12.02.2005 17:09
Swappp
Бумажного чего-то хочется, твёрдого .
И ещё: можно ли запускать работу QSocket в отдельном потоке.
Как работать с QThread и что такое QNetworkProtocol ?
По русски
Автор: KADABRA
Дата сообщения: 01.03.2005 17:22
Надо работать с картинкой и сразу её выводить на экран. А работать надо с пикселями (только в QImage?) а как его выводит быстро?
Автор: KADABRA
Дата сообщения: 02.03.2005 14:23
Такс. QImage свободно копируется в QLabel. Но очередная проблема. QImage работает коряво:

Код:
QImage iImage(500, 500, 8);
iImage.reset();
iImage.load("invasion.gif"); // Без этого не работает. Почему?

for(int i = 0; i < 460; i++)
{
for(int k = 0; k < 350; k++)
{
iImage.setPixel(i, k, 0xff00);
}
}
bitBlt(m_pForm->pixmap, 0, 0, &iImage, 0, 0);

Страницы: 1234567

Предыдущая тема: Как работать с TClientDataSet (Delphi)?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.