Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
1

Непонятная ошибка

04.09.2012, 17:33. Показов 1654. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
код main.cpp
C++ Скопировано
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <o.cpp>
#include <o.moc>
 
 
MyEdit *label4;
MyThread *TR;
 
void    QTreeView::currentChanged ( const QModelIndex & current, const QModelIndex & previous ){
t->setCursor(Qt::WaitCursor);
    stopped=true;
    if(firststart==true){stopped=false;firststart=false;}
    while(stopped==true);
siz=0;
list="";
qnFileCount=0;
ilist=0;
for(int i=0;i<100;i++){listsize[i]=0;}
label4->clear();
    cur=current;
    pre=previous;
    TR->start();
    t->setCursor(Qt::ArrowCursor);
}
 
int main(int argc, char *argv[])
{    codec = QTextCodec::codecForName("windows-1251");
     QApplication app(argc, argv);
     firststart=true;
     QMainWindow w;
     t=new QTreeView();TR=new MyThread();
     d1=new QDockWidget;
     d2=new QDockWidget;
     QWidget *hide1=new QWidget;
     QWidget *hide2=new QWidget;
     m = new QDirModel;
     label=new QLabel;
     label1=new QLabel;
     label2=new QLabel;
     label3=new QLabel;
     label4=new MyEdit();
     label4->setReadOnly(true);
     QVBoxLayout* box=new QVBoxLayout();
     QGroupBox *groupBox = new QGroupBox(codec->toUnicode("Свойства:"));
     d1->setTitleBarWidget(hide1);
     d2->setTitleBarWidget(hide2);
     
     t->setModel(m);
     box->addWidget(label);
     box->addWidget(label1);
     box->addWidget(label2);
     box->addWidget(label3);
     box->addWidget(label4);
     groupBox->setLayout(box);
     
     d1->setWidget(t);
     d2->setWidget(groupBox);
     
     w.addDockWidget(Qt::DockWidgetArea::LeftDockWidgetArea,d1);
     w.addDockWidget(Qt::DockWidgetArea::RightDockWidgetArea,d2);
     
     w.resize(1000,500);
     m->setFilter(QDir::Filter::AllDirs);
    w.show();
    QObject::connect(TR,SIGNAL(MyOut()),
                     label4,SLOT(MyOut));
    
    
    return app.exec();
 };
o.cpp
C++ Скопировано
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <QtCore>
#include <QtGui>
QString path;
QLabel *label,*label1,*label2,*label3;
 
QTreeView *t;
QDockWidget *d1;
QDockWidget *d2;
QDirModel *m;
QTextCodec *codec;
qint64 qnFileCount;
float siz;
QModelIndex cur;
QModelIndex pre;
bool stopped;
bool firststart;
QString list;
QString str;
qint64 listsize[1000];int ilist;
 
void FindFileAndSize( QString szDir)
{ if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        FindFileAndSize( szFileName);
    }
    if( fi.isFile()){qnFileCount++;siz=siz+fi.size();   
    }
 }}
}
int SubDir( QString szDir)
{ int i;
    if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        i++;
    }
 }}
    return i;
}
 
void FindFileTypeSize( QString szDir)
{ QString fname;
    if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        FindFileTypeSize( szFileName);
    }
    if( fi.isFile()){fname=fi.fileName();
    if(fname.contains(str)){listsize[ilist]=listsize[ilist]+fi.size();}
 
 
    }
 }}
}
 
void FindFileType( QString szDir)
{ if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        FindFileType( szFileName);
    }
    if( fi.isFile()){
    str=fi.fileName();
    for(int i=str.length();i>0;i--)
    {
        if(str[i]=='.'){
            str.remove(0,i);
        if(list.contains(str)==false){
            list.append(str);
            
FindFileTypeSize(szDir);
 
 
            ilist++;
        }if(str.length()-i>5){break;}
    };
    };
    }
 }}
}
 
 
 
 
 
 
 
 
float rou(float fl){fl=fl*100;fl=qRound(fl);fl=fl/100;return fl;}
 
class MyEdit: public QTextEdit{Q_OBJECT
    public slots:void MyOut(int ilist,QString list,qint64 listsize[]){
    int b=ilist-1;QString strlist='.';
int l=list.length()-1;
while(l>=0){
    strlist.prepend(list[l]);
    if(list[l]=='.'){
        append(strlist);
        append(QString::number(listsize[b]));
        b--;
        strlist="";}
l--;
}MyEdit::append("dad");
    }
};
 
 
class MyThread: public QThread{Q_OBJECT
 signals:void MyOut(int ilist,QString list,qint64 listsize[]);
 public:void sendMyOut(int ilist,QString list,qint64 listsize[]){emit MyOut(ilist,list,listsize);};
 void run(){
    QString sizeS;
    QFileInfo info=m->fileInfo(cur);
    label3->setText(codec->toUnicode("Файлы: идёт поиск Папки: идёт поиск "));
    label2->setText(codec->toUnicode("Размер: идёт поиск "));
    label->setText(codec->toUnicode("Название: ")+m->fileName(cur));
    label1->setText(codec->toUnicode("Полный путь: ")+info.path()+info.fileName());
 
FindFileAndSize(info.path()+info.fileName());
if(siz<999){sizeS=QString::number(siz)+codec->toUnicode(" байт");}
if(siz>999){siz=siz/1024;sizeS=QString::number(rou(siz))+codec->toUnicode(" Кбайт");}
if(siz>999){siz=siz/1024;sizeS=QString::number(rou(siz))+codec->toUnicode(" Мбайт");}
if(siz>999){siz=siz/1024;sizeS=QString::number(rou(siz))+codec->toUnicode(" Гб");}
    label2->setText(codec->toUnicode("Размер: ")+sizeS);
    label3->setText(codec->toUnicode("Файлы: ")+QString::number(qnFileCount)+codec->toUnicode("шт. Папки: ")+QString::number(SubDir(info.path()+info.fileName()))+codec->toUnicode("шт."));
FindFileType(info.path()+info.fileName());
sendMyOut(ilist,list,listsize);
    firststart=true;stopped=false;
    }
};
Выводит ошибку о том что я переопределяю классы О_о.
C++ Скопировано
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
Ошибка    1   error LNK2005: "void __cdecl FindFileAndSize(class QString)" (?FindFileAndSize@@YAXVQString@@@Z) уже определен в main.obj  o.obj
Ошибка    2   error LNK2005: "int __cdecl SubDir(class QString)" (?SubDir@@YAHVQString@@@Z) уже определен в main.obj o.obj
Ошибка    3   error LNK2005: "void __cdecl FindFileTypeSize(class QString)" (?FindFileTypeSize@@YAXVQString@@@Z) уже определен в main.obj    o.obj
Ошибка    4   error LNK2005: "void __cdecl FindFileType(class QString)" (?FindFileType@@YAXVQString@@@Z) уже определен в main.obj    o.obj
Ошибка    5   error LNK2005: "float __cdecl rou(float)" (?rou@@YAMM@Z) уже определен в main.obj  o.obj
Ошибка    6   error LNK2005: "bool firststart" (?firststart@@3_NA) уже определен в main.obj  o.obj
Ошибка    7   error LNK2005: "__int64 qnFileCount" (?qnFileCount@@3_JA) уже определен в main.obj o.obj
Ошибка    8   error LNK2005: "class QDockWidget * d1" (?d1@@3PAVQDockWidget@@A) уже определен в main.obj o.obj
Ошибка    9   error LNK2005: "float siz" (?siz@@3MA) уже определен в main.obj    o.obj
Ошибка    10  error LNK2005: "class QLabel * label" (?label@@3PAVQLabel@@A) уже определен в main.obj o.obj
Ошибка    11  error LNK2005: "class QTextCodec * codec" (?codec@@3PAVQTextCodec@@A) уже определен в main.obj o.obj
Ошибка    12  error LNK2005: "class QLabel * label1" (?label1@@3PAVQLabel@@A) уже определен в main.obj   o.obj
Ошибка    13  error LNK2005: "__int64 * listsize" (?listsize@@3PA_JA) уже определен в main.obj   o.obj
Ошибка    14  error LNK2005: "int ilist" (?ilist@@3HA) уже определен в main.obj  o.obj
Ошибка    15  error LNK2005: "class QTreeView * t" (?t@@3PAVQTreeView@@A) уже определен в main.obj   o.obj
Ошибка    16  error LNK2005: "class QLabel * label2" (?label2@@3PAVQLabel@@A) уже определен в main.obj   o.obj
Ошибка    17  error LNK2005: "bool stopped" (?stopped@@3_NA) уже определен в main.obj    o.obj
Ошибка    18  error LNK2005: "class QDirModel * m" (?m@@3PAVQDirModel@@A) уже определен в main.obj   o.obj
Ошибка    19  error LNK2005: "class QDockWidget * d2" (?d2@@3PAVQDockWidget@@A) уже определен в main.obj o.obj
Ошибка    20  error LNK2005: "class QLabel * label3" (?label3@@3PAVQLabel@@A) уже определен в main.obj   o.obj
Ошибка    21  error LNK2005: "class QString path" (?path@@3VQString@@A) уже определен в main.obj o.obj
Ошибка    22  error LNK2005: "class QString str" (?str@@3VQString@@A) уже определен в main.obj   o.obj
Ошибка    23  error LNK2005: "class QModelIndex pre" (?pre@@3VQModelIndex@@A) уже определен в main.obj   o.obj
Ошибка    24  error LNK2005: "class QString list" (?list@@3VQString@@A) уже определен в main.obj o.obj
Ошибка    25  error LNK2005: "class QModelIndex cur" (?cur@@3VQModelIndex@@A) уже определен в main.obj   o.obj
Ошибка    26  error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) уже определен в LIBCMT.lib(typinfo.obj) msvcrt.lib
Ошибка    27  error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) уже определен в LIBCMT.lib(typinfo.obj)   msvcrt.lib
Предупреждение    28  warning LNK4098: библиотека по умолчанию "msvcrt.lib" противоречит использованию других библиотек; используйте параметр /NODEFAULTLIB:library   LIBCMT.lib
Ошибка    29  fatal error LNK1169: обнаружен многократно определенный символ - один или более   D:\Games\Программирование\С++\Projects\QT1\Win32\Release\QT1.exe
HELP!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2012, 17:33
Ответы с готовыми решениями:

Непонятная ошибка
Добрый день! Проблема заключается в том что компилятор при начальном тестировании среды выдает ошибку -1073741502

Непонятная ошибка
При попытке собрать проект вылазит ошибка :wall:: In function `ZN6WidgetC2EP7QWidget': undefined reference to...

Непонятная ошибка в QNetworkRequest
Возникает ошибка, которую не могу побороть. В чем проблема???

2
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
04.09.2012, 18:39 2
Цитата Сообщение от tonx92 Посмотреть сообщение
C++ Скопировано
1
2
#include <o.cpp>
#include <o.moc>
Штоэта?
0
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
04.09.2012, 19:16  [ТС] 3
Подключение кода при использовании сигналов слотов...

Добавлено через 1 минуту
Если убрать Q_OBJECT всё норм тока сигналы не работают.

Добавлено через 26 минут
Всё разобрался(файл компилируемый moc не должен содержать ничего кроме подключаемых библиотек и классов которые которые содержат макрос Q_OBJECT
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2012, 19:16
Помогаю со студенческими работами здесь

Непонятная ошибка cblas_saxpy и DSO missing
Приветствую. Во время попытки запустить приложение из QT появляется ошибка :-1: error: gui_main.o: undefined reference to symbol...

Непонятная ошибка деления на ноль sigfpe arithmetic exception
Здравствуйте вот такая проблема пишу файловый менеджер есть кусок кода который копирует файл for (int i=0;i&lt;path.size();i++) //...

Непонятная ошибка "Visual Studio"
Вот ошибка

Непонятная ошибка
Привет всем) Есть главная форма! type TFormMainMenu = class(TForm) GroupBox1: TGroupBox; ButtonAddPr: TButton; ...

Непонятная ошибка
После загрузки некоторых игр выходит окно что команда XXXXXX обратилась к XXXXXX память не может быть READ и игра выключаеться. причем...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Простая нейросеть на КуМир: Создание и обучение
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
Исполнитель Водолей в КуМир: Решение задач
EggHead 16.03.2025
Разработка алгоритмического мышления — одна из ключевых задач для начинающих программистов, и система КуМир предлагает отличный способ погрузиться в этот процесс. Среди множества исполнителей в этой. . .
Исполнитель Чертежник в КуМир: Решение задач
EggHead 16.03.2025
Представьте, что вы можете рисовать на бесконечной координатной плоскости, перемещая точку, которая оставляет след. По вашей команде она может поднять перо и двигаться, не оставляя следа, или. . .
Исполнитель Робот в КуМир: Решение задач
EggHead 16.03.2025
КуМир (Комплект Учебных МИРов) — это учебная среда программирования, разработанная специально для обучения базовым концепциям алгоритмизации. Её главная фишка — использование русскоязычного. . .
Исполнитель Черепаха в КуМир: Решение задач
EggHead 16.03.2025
Представьте, что вы впервые учитесь программировать, а перед вами стоит задача заставить маленькую виртуальную черепашку рисовать на экране. Звучит забавно? Эта идея зародилась ещё в 1967 году, когда. . .
Конвейеры данных с Apache Kafka
Javaican 16.03.2025
В мире, где данные стали новой нефтью, Apache Kafka зарекомендовал себя как мощный инструмент для построения надежных и масштабируемых конвейеров данных. Созданный изначально командой LinkedIn в 2011. . .
Deno против Node.js: Будущее JavaScript рантайма
run.dev 16.03.2025
За последнее десятилетие Node. js стал абсолютным лидером среди JavaScript-рантаймов и фактическим стандартом для серверной разработки на JavaScript. Но в 2018 году тот же разработчик, который создал. . .
SwiftUI или UIKit - что выбрать для нового приложения iOS?
mobDevWorks 16.03.2025
Когда Apple представила SwiftUI на WWDC 2019, многим показалось, что дни UIKit сочтены. Новый декларативный фреймворк предлагал радикально иной подход к разработке интерфейсов. Вместо кропотливого. . .
Docker: Руководство для начинающих по созданию первого приложения
Mr. Docker 16.03.2025
Docker — это платформа, которая упаковывает ваше приложение и все его зависимости в стандартизированные блоки, называемые контейнерами. Эти контейнеры изолированы друг от друга и от основной системы,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер