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

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

04.09.2012, 17:33. Показов 1603. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2012, 17:33
Ответы с готовыми решениями:

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

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

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

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

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
04.09.2012, 19:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2012, 19:16
Помогаю со студенческими работами здесь

Непонятная ошибка деления на ноль sigfpe arithmetic exception
Здравствуйте вот такая проблема пишу файловый менеджер есть кусок кода который копирует файл ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru