Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Юля_программист
682 / 192 / 60
Регистрация: 04.05.2012
Сообщений: 886
Записей в блоге: 1

Сегфолт в двух проектах одной программы

11.01.2013, 13:06. Показов 582. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два проекта, суть у них одна.
В обоих treewidget на основе xml,webviewer.

Один чистовой,а на втором тренируюсь,, чтобы не сломать хороший...
Разобралась как ходить по клику и открывать, добавила в чистовой вариант, и что Вы думаете у меня и там и там сегфолт...

Первый случай...
Что сделала:Добавила в функцию go()
Когда сегфолт: при первом нажатии на кнопку
Где останавливается дебаг:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidgetItem *item, IteratorFlags flags)
    : d_ptr(new QTreeWidgetItemIteratorPrivate(
                this, qobject_cast<QTreeModel*>(item->view->model()))),
      current(item), flags(flags)
{//стрелка вот на этой строчки
    Q_D(QTreeWidgetItemIterator);
    Q_ASSERT(item);
    QTreeModel *model = qobject_cast<QTreeModel*>(item->view->model());
    Q_ASSERT(model);
    model->iterators.append(this);
........
Код функции
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void MainWindow::go()
{
    m_item=MainTreeWidget->currentItem();//вот эту строчку
    QString path =ItemToPath[m_item];
    QTreeWidgetItemIterator it(m_item);
 
++it;
            if(*it!=NULL)
            {
                m_item->setSelected(false);
                m_item=*it;
                m_item->setSelected(true);
                MainTreeWidget->setCurrentItem(m_item);//и эту
                if(m_item->isSelected()==true)
               {
                    path = MainXMLFileInfo->absolutePath()+ "\\" + path;
 
 
                    //MainWebView->load(QUrl::fromLocalFile(path));
//MainPathLabel->setText(path);
                }
 
            }
 
    if(*it==NULL)
    {
        wgt->show();
        wgt->resize(300,100);
 
    }
 
 
}//конец кнопки go
Второй случай...
Что сделала:аналогично добавила строки
Когда сегфолт:при клике на item дерева
Где останавливается дебаг:
C++ (Qt)
1
2
3
4
5
6
7
bool QString::operator==(const QString &other) const
{
    if (d->size != other.d->size)//вот сюда показывает
        return false;
 
    return qMemEquals(d->data, other.d->data, d->size);
}
Код
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void widget::go()
{
 
 
m_item=twg->currentItem();
QString PathStr =ItemToPath[m_item];
QTreeWidgetItemIterator it(m_item);
it++;
        if(*it!=NULL)
        {
            m_item->setSelected(false);
            m_item=*it;
            m_item->setSelected(true);
           twg->setCurrentItem(m_item);
           if(m_item->isSelected()!=false)
            {
                PathStr = MainXMLFileInfo->absolutePath()+ "\\" + PathStr;
             //   web_window->load(QUrl::fromLocalFile(PathStr));
 
           }
 
        }
 
}
Я ни как не пойму что не так?
Первый говорит, что ему что то с интератором не нравится...думала может из-за того, что он хочет второй параметр - флаг. Но во втором тоже самое, и никакого флага там не надо..
А вот самая большая загадка так это почему во втором случае он указывает на функцию сравнения....кошмар...
В общем буду рада любым советам)

Добавлено через 11 минут
Второй случай только что нашла ошибку.....
Ошибка была в том, что
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
void widget::openHtml(QModelIndex)
 
{
 
 
   QString path=ItemToPath[twg->currentItem()];
   path = MainXMLFileInfo->absolutePath()+"\\"+path;
 
   web_window->load(QUrl::fromLocalFile(path));
  // l->setText(path);//лейбла нет, а я в него, что-то вывожу...закоментировала...и все заработало
 
}
А вот первый случай остался
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2013, 13:06
Ответы с готовыми решениями:

Использование ресурсов WPF в других проектах одной сборки
Добрый день. Решил сделать локализацию своего проекта. За основу взял эту - http://habrahabr.ru/post/256193/ статью. В сборке...

Использование окна в двух проектах
Здравствуйте! Как можно использовать окно в двух проектах в пределах одного решения? Например окно авторизации? Спасибо заранее

EF использование одного ApplicationDbContext в двух проектах
Доброго времени суток коллеги. Есть ASP Core проект использующий EF для доступа к БД. Стала необходимость в создании еще одного проекта...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2013, 13:06
Помогаю со студенческими работами здесь

Как одну функцию использовать в двух проектах
Есть функция которую нужно вызывать в двух проектах Я поместил ее в отдельный .cpp файл Проблема в том что в двух разных проектах...

Нужно сделать так чтоб с одной программы работать одновременно с двух компьютеров
всем привет помогите! мне нужно сделать так чтоб с одной программы работать одновременно с двух компьютеров

Как использовать один Enum в двух проектах по связной ссылке?
Такая ситуация есть два проекта в одном решении, первый собирается в DLL, второй в EXE, в одном и в другом проекте нужно использовать...

Dotnet-aspnet-codegenerator В двух проектах допускает ошибку в одном и том же месте
Делая по инструкции дошёл до применения кодгенератора, где было сказано выполнить эту команду: dotnet aspnet-codegenerator razorpage -m...

Использование двух записей одной таблицы в одной записи другой
Всем привет! Есть таблица &quot;Application&quot;, в ней есть 2 поля, которые содержат: ID пользователя, который запись создал и ID...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru