Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Готовый код, Ваши замечания 
:(
    Опции темы
NewDima
Дата 30.12.2008, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



В общем, мое первое приложение на qt.
В аттаче два проекта. Собственно, меня интересуют ваши советы, замечания и рекомендации по поводу кода, как стилистические особенности, так и можно показать, как делать не правильно или не рекомендуется. Более интересуют мнения по проекту cursovik, потому-что lnaplugin служит только для демонстрации работы первого.
Большое всем спасибо!
ЗЫ. к слову, курсач все-равно уже сдал, буду учиться

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  ______.rar 379,04 Kb
PM ICQ   Вверх
NewDima
Дата 30.12.2008, 04:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



извиняюсь, в первом еще не большие иконки есть, выкладываю без них (сам проект)

Это сообщение отредактировал(а) NewDima - 30.12.2008, 04:51

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ______1.rar 6,36 Kb
PM ICQ   Вверх
NewDima
Дата 30.12.2008, 04:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



и библиотека к нему

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  ______2.rar 6,36 Kb
PM ICQ   Вверх
SABROG
Дата 30.12.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



В принципе тут многое осталось о чем я говорил в другом посте. Еще привлекло внимание вот это:

Код

struct tree_struct
{
    QStandardItem *itemRoot,
...
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
...
    void ClearTree(tree_struct* tr, bool first);
...
    tree_struct tree;
    tree_struct treeman;
protected:
    void closeEvent(QCloseEvent *event);


Код

void MainWindow::ClearTree(tree_struct* tr, bool first)
{
    for (QStandardItem* *item = &tr->itemRoot; item<&tr->othermath; item++)
    {
        if (!first) delete *item;
        *item = (QStandardItem*)0;
    }
    if (!first) delete tr->model;
    tr->model = (QStandardItemModel*)0;
}


Метод удаления указателей из структуры конечно интересный, но не безопасный. Если между элементами добавится парочка итемов с другими типами, то будет крах. Можно конечно использовать списки или обращаться по имени каждого, но это либо потеря возможности обращаться к элементам поименно или много писанины. Может быть можно объявить массив указателей, а потом как-нибудь через cast привести его к структуре, чтобы можно было обратится к элементам по имени. Кстати ты уверен, что последний указатель (tr->othermath) удаляется ? Похоже на утечку памяти.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
NewDima
Дата 30.12.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



Код

многое осталось о чем я говорил в другом посте

да, к сожалению, все исправить не успел

Код

Кстати ты уверен, что последний указатель (tr->othermath) удаляется ? Похоже на утечку памяти.

я его не должен был инициализировать, если инициализировал, значит ошибмя
PM ICQ   Вверх
SABROG
Дата 30.12.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



В общем пообщался на тему подобного удаления в разделе "Для Новичков". Вариант mes'а мне нравится, советую сделать как у него: http://forum.vingrad.ru/forum/topic-242216.html#post1743811

Это сообщение отредактировал(а) SABROG - 30.12.2008, 14:02


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
NewDima
Дата 7.1.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



спасибо, а есчо?)
только вот к сожалению, времени не было комменты писать)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0642 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.