it-place.net > Уроци > C-Cplusplus
Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Програмиране с QT
  1. Увод
  2. Цели
  3. Началото
  4. Създаване на класа за обекта върху, който ще чертаем
  5. Заключение
jan
     
Автор  jan (29.12.2004 10:27)  съобщение до автора
Погледнат  7945 пъти  добави към любими
Оценка  добави коментар
Гласове  5  изпрати на приятел
Коментари  (4)  абонирай се за C-Cplusplus
    Страница 1 / 5

 



Увод

Защо QT? QT е изцяло обектно ориентирана многоплатформена API(Linux, Windows, Macintosh и т.н.), която освен стандартните класове за компоненти от рода на бутони, етикети, текстови полета и т.н. реализира класове за работа с файлове (QFile), директории (QDir), бази от данни, речници и т.н.

QT е “предсказуема” и коректна т.е. ако програмата не тръгва причината най-вероятно е в програмиста.

“Преносима” във версиите си т.е. ако искаме да прекомпилираме програма написана на по-стара версия, промените които трябва да направим няма да са значителни.

KDE се базира на QT.

Много добра документация.

Има сравнително удобни среди за разработка на програми (Kdevelop, QTDesigner)

Безплатна е за Linux.

Идеите й на програмиране са по близки до Gtk.

Недостатъци.

Платена е за Windows.

Кодът й е затворен.

В общи линии QT е доказала се API, удобна за разработка на приложения с всякаква сложност. Лично аз не съм привърженик на емулаторите и е по-добре да се пренапише едно приложение, което искаме да върви под Linux наново, отколкото да се стремим да го пускаме с емулатор. QT е прекрасен избор за това.



  Следваща страница >> 


Ключови думи: c C++ многоплатформена api Linux програмиране qt


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Вчера вечерта си поиграх с функцията ти малко вкъщи. ;) Смятам, че би била много по-ефективна в този вид:

void FractField::fractal1()
{
    QPoint points[] = { QPoint(10,10), QPoint(360,85), QPoint(10,375) };
    const int pointCount = 3;
    QPoint M = points[0]; // "движещата" се точка инициализирам с един от върховете

    QPainter p( this );
    p.drawPoint(A);
    p.drawPoint(B);
    p.drawPoint(C);

    who_fractal=1;
    for(int i=1;i<100000;i++)
    {
        // избирам от входните точки една случайна
        char index = rand() % pointCount;
       
        // премествам "движещата" се точка на новите координати
        M.setX((M1.x() + points[index].x()) / 2);
        M.setY((M1.y() + points[index].y()) / 2);
       
        // начертавам новата точка
        p.drawPoint(M.x(), M.y());
    }
}

  Izida на 07.01.2005 09:24

Имаш грешка в алгоритъма за изчертаване на триъгълника на Серпински. По условие би трябвало да имаш 3 точки, които са върхове на триъгълник. А "движещата" се точка М трябва да инициализираш не със случайни координати, а с координатите на една от горните три точки. Поради тази грешка имаш няколко точки в големите иначе празни триъгълници. Виж това :
http://orion.math.iastate.edu/danwell/Fexplain/ifs1.html

И второ, в цикъка напълно ненужно използваш случайни стойности м/у 1 и 4. Нали имаш три върха, от които да избираш? Трябва да е int t = 1 + (rand() % 3);
При това в switch-а явно си скърпил положението като в случая на получаване на 4 отиваш в default и просто пропускаш да начертаеш каквото и да е в тази итерация. Така обаче в голяма част от итерациите просто нищо не чертаеш, което си е загуба. Сложи един брояч на неизчертаните точки, който се увеличава само в default клаузата. За брой на итерациите 1000, бяха начертани 771 точки само. Другите 229 са попадение на 4-ката от (rand() % 4) - загубени итерации!

  Izida на 07.01.2005 09:23

Добър първи поглед върху QT! :)

  Izida на 06.01.2005 14:14

Браво чудесен урок!

  Magenta на 29.12.2004 13:56

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008