Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to include .txt on Qt
Forum Updated to NodeBB v4.3 + New Features

How to include .txt on Qt

Scheduled Pinned Locked Moved Unsolved General and Desktop
196 Posts 11 Posters 142.7k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Payx
    wrote on 28 Dec 2016, 14:33 last edited by
    #63

    Okay understood how it works now.

    Why it say that "Costs" is not declared, it is the name of the QMap right ?

    M 1 Reply Last reply 28 Dec 2016, 16:55
    0
    • P Payx
      28 Dec 2016, 14:33

      Okay understood how it works now.

      Why it say that "Costs" is not declared, it is the name of the QMap right ?

      M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 28 Dec 2016, 16:55 last edited by
      #64

      @Payx
      Yes Costs is the QMap variable.

      1 Reply Last reply
      0
      • P Offline
        P Offline
        Payx
        wrote on 28 Dec 2016, 17:08 last edited by
        #65

        How do i declare a QMap ?

        i tried

        QMap<QRgb, CostInfo > Costs;
        
        M 1 Reply Last reply 28 Dec 2016, 17:14
        0
        • P Payx
          28 Dec 2016, 17:08

          How do i declare a QMap ?

          i tried

          QMap<QRgb, CostInfo > Costs;
          
          M Offline
          M Offline
          mrjj
          Lifetime Qt Champion
          wrote on 28 Dec 2016, 17:14 last edited by
          #66

          @Payx
          Yes that is how you declare an empty QMap called Costs.

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Payx
            wrote on 28 Dec 2016, 18:47 last edited by
            #67

            Yes but it say that CostInfo is not declared again

            M 1 Reply Last reply 28 Dec 2016, 20:58
            0
            • P Payx
              28 Dec 2016, 18:47

              Yes but it say that CostInfo is not declared again

              M Offline
              M Offline
              mrjj
              Lifetime Qt Champion
              wrote on 28 Dec 2016, 20:58 last edited by
              #68

              @Payx
              CostInfo must be declared before you use it in QMap
              Where is it?
              you used to have struct CostInfo declaration.

              1 Reply Last reply
              0
              • P Offline
                P Offline
                Payx
                wrote on 28 Dec 2016, 21:00 last edited by
                #69

                I put my declaration of CostInfo in my .h

                M 1 Reply Last reply 28 Dec 2016, 21:05
                0
                • P Payx
                  28 Dec 2016, 21:00

                  I put my declaration of CostInfo in my .h

                  M Offline
                  M Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on 28 Dec 2016, 21:05 last edited by
                  #70

                  @Payx
                  and is that .h file included in the same file where u have the Qmap def ?

                  1 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    Payx
                    wrote on 28 Dec 2016, 21:27 last edited by
                    #71

                    i got

                    QMap<QRgb, CostInfo > Costs = {
                    	{ QColor(255 , 0 , 0 ).rgb(), { "://fraise.png", 10 }},
                    	{ QColor(0 , 255 , 0 ).rgb(), { "://balleverte.png", 20 }},
                    	{ QColor(0 , 0 , 255 ).rgb(), { "://ballebleue.png", 20 }},
                    	{ QColor(255 , 255 , 255 ).rgb(), { "://balleblanche.png", 20 }},
                    	{ QColor(255 , 128 , 0 ).rgb(), { "://ballepeche.png", 20 }},
                    	{ QColor(0 , 0 , 0 ).rgb(), { "://noir.png", 20 }},
                    	{ QColor(102 , 51 , 0 ).rgb(), { "://marron.png", 20 }},
                    	{ QColor(255 , 102 , 78 ).rgb(), { "://rose.png", 20 }},
                    	{ QColor(0 , 204 , 204 ).rgb(), { "://turquoise.png", 20 }},
                    	{ QColor(255 , 178 , 102 ).rgb(), { "://beige.png", 20 }},
                    	{ QColor(76 , 0 , 153 ).rgb(), { "://violet.png", 20 }},
                    	{ QColor(100 , 100 , 100 ).rgb(), { "://gris.png", 20 }},
                    };
                    

                    in my .cpp

                    and struct in my .h,

                    do i paste "QMap<QRgb, CostInfo > Costs;" in my .cpp like my function or in my .h (sorry but i didnt understand ur question ^^)

                    M 1 Reply Last reply 28 Dec 2016, 21:57
                    0
                    • P Payx
                      28 Dec 2016, 21:27

                      i got

                      QMap<QRgb, CostInfo > Costs = {
                      	{ QColor(255 , 0 , 0 ).rgb(), { "://fraise.png", 10 }},
                      	{ QColor(0 , 255 , 0 ).rgb(), { "://balleverte.png", 20 }},
                      	{ QColor(0 , 0 , 255 ).rgb(), { "://ballebleue.png", 20 }},
                      	{ QColor(255 , 255 , 255 ).rgb(), { "://balleblanche.png", 20 }},
                      	{ QColor(255 , 128 , 0 ).rgb(), { "://ballepeche.png", 20 }},
                      	{ QColor(0 , 0 , 0 ).rgb(), { "://noir.png", 20 }},
                      	{ QColor(102 , 51 , 0 ).rgb(), { "://marron.png", 20 }},
                      	{ QColor(255 , 102 , 78 ).rgb(), { "://rose.png", 20 }},
                      	{ QColor(0 , 204 , 204 ).rgb(), { "://turquoise.png", 20 }},
                      	{ QColor(255 , 178 , 102 ).rgb(), { "://beige.png", 20 }},
                      	{ QColor(76 , 0 , 153 ).rgb(), { "://violet.png", 20 }},
                      	{ QColor(100 , 100 , 100 ).rgb(), { "://gris.png", 20 }},
                      };
                      

                      in my .cpp

                      and struct in my .h,

                      do i paste "QMap<QRgb, CostInfo > Costs;" in my .cpp like my function or in my .h (sorry but i didnt understand ur question ^^)

                      M Offline
                      M Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on 28 Dec 2016, 21:57 last edited by
                      #72

                      @Payx
                      it sounds right.

                      The CostInfo is in .h ?

                      Can you show it ?

                      1 Reply Last reply
                      0
                      • P Offline
                        P Offline
                        Payx
                        wrote on 28 Dec 2016, 22:07 last edited by Payx
                        #73

                        i think i fixed it i had :

                        #ifndef MAINWINDOW_H
                        #define MAINWINDOW_H
                        
                        #include <QMainWindow>
                        #include <QPixmap>
                        #include <QPoint>
                        #include <QSize>
                        #include <iostream>
                        
                        namespace Ui {
                        	class MainWindow;
                        }
                        
                        class MainWindow : public QMainWindow
                        {
                        	Q_OBJECT
                        
                        public:
                        	explicit MainWindow(QWidget *parent = 0);
                        	struct CostInfo
                        	{
                        		QString ImageName;
                        		int     cost;
                        	};
                        
                        
                        
                        	~MainWindow();
                        
                        
                        
                        
                        
                        private slots:
                        	void on_push_clicked();
                        	void on_push2_clicked();
                        
                        	void on_verticalSlider_sliderMoved(int position);
                        
                        	void on_verticalSlider_actionTriggered(int action);
                        
                        private:
                        	Ui::MainWindow *ui;
                        	QImage pixi;
                        	QPixmap pixa;
                        	float k;
                        	int a;
                        
                        
                        	int z=1;
                        	int b;
                        };
                        
                        #endif // MAINWINDOW_H
                        

                        and now i remember that i have to paste in the .h but not in public or private so i have :

                        #ifndef MAINWINDOW_H
                        #define MAINWINDOW_H
                        
                        #include <QMainWindow>
                        #include <QPixmap>
                        #include <QPoint>
                        #include <QSize>
                        #include <iostream>
                        
                        namespace Ui {
                        	class MainWindow;
                        }
                        struct CostInfo
                        {
                        	QString ImageName;
                        	int     cost;
                        };
                        
                        
                        class MainWindow : public QMainWindow
                        {
                        	Q_OBJECT
                        
                        public:
                        	explicit MainWindow(QWidget *parent = 0);
                        
                        
                        
                        	~MainWindow();
                        
                        
                        
                        
                        
                        private slots:
                        	void on_push_clicked();
                        	void on_push2_clicked();
                        
                        
                        	void on_verticalSlider_sliderMoved(int position);
                        
                        	void on_verticalSlider_actionTriggered(int action);
                        
                        private:
                        	Ui::MainWindow *ui;
                        	QImage pixi;
                        	QPixmap pixa;
                        	float k;
                        	int a;
                        
                        
                        	int z=1;
                        	int b;
                        };
                        
                        #endif // MAINWINDOW_H
                        

                        and what is this line :

                        QMapIterator<QRgb, CostInfo> i;
                        

                        because it say "no matching function to call"

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 28 Dec 2016, 22:25 last edited by
                          #74

                          I wonder if you dont have c++11 compiler.

                          "no matching function to call"
                          Make sure you have included QMapIterator

                          1 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            Payx
                            wrote on 28 Dec 2016, 22:50 last edited by
                            #75

                            i included, no change.

                            How can i see if i have a c++ compiler ?

                            M 1 Reply Last reply 29 Dec 2016, 07:15
                            1
                            • P Payx
                              28 Dec 2016, 22:50

                              i included, no change.

                              How can i see if i have a c++ compiler ?

                              M Offline
                              M Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on 29 Dec 2016, 07:15 last edited by mrjj
                              #76

                              @Payx
                              Ok. No sure what goes wrongly for you. Seems to have CostInfo
                              in .h and Costs QMap in cpp which should be fine.

                              • How can i see if i have a c++ compiler ?
                                c++11 compiler. Meaning a compiler that knows the new c++11 version.
                                I assume you do. But if you are on linux or using old Qt it might not be the case.

                              So what platform and Qt version?

                              1 Reply Last reply
                              0
                              • P Offline
                                P Offline
                                Payx
                                wrote on 29 Dec 2016, 12:20 last edited by
                                #77

                                i paste for you all my project so you can see exactly :

                                .h :

                                #ifndef MAINWINDOW_H
                                #define MAINWINDOW_H
                                
                                #include <QMainWindow>
                                #include <QPixmap>
                                #include <QPoint>
                                #include <QSize>
                                #include <iostream>
                                #include <QMapIterator>
                                #include <QMap>
                                
                                namespace Ui {
                                	class MainWindow;
                                }
                                struct CostInfo
                                {
                                	QString ImageName;
                                	int     cost;
                                };
                                
                                
                                class MainWindow : public QMainWindow
                                {
                                	Q_OBJECT
                                
                                public:
                                	explicit MainWindow(QWidget *parent = 0);
                                
                                
                                
                                	~MainWindow();
                                
                                
                                
                                
                                
                                private slots:
                                	void on_push_clicked();
                                	void on_push2_clicked();
                                
                                
                                	void on_verticalSlider_sliderMoved(int position);
                                
                                	void on_verticalSlider_actionTriggered(int action);
                                
                                private:
                                	Ui::MainWindow *ui;
                                	QImage pixi;
                                	QPixmap pixa;
                                	float k;
                                	int a;
                                
                                
                                	int z=1;
                                	int b;
                                };
                                
                                #endif // MAINWINDOW_H
                                

                                .cpp (mainwidow)

                                #include "mainwindow.h"
                                #include "ui_mainwindow.h"
                                #include <QPixmap>
                                #include <QImage>
                                #include <QFileDialog>
                                #include <QColor>
                                #include <QPoint>
                                #include <QSize>
                                #include <iostream>
                                #include <QMapIterator>
                                #include <QMap>
                                using namespace std;
                                
                                
                                QColor Couleurdominante(const QImage& image, const QPoint& topLeft, const QSize& rectSize);
                                void Remplissage(QImage& image, const QPoint& topLeft, const QSize& rectSize, const QColor& colour);
                                
                                
                                MainWindow::MainWindow(QWidget *parent) :
                                	QMainWindow(parent),
                                	ui(new Ui::MainWindow)
                                {
                                		ui->setupUi(this);
                                
                                }
                                
                                
                                MainWindow::~MainWindow()
                                {
                                	delete ui;
                                }
                                
                                
                                
                                
                                void MainWindow::on_push_clicked()
                                {
                                	QString fileName = QFileDialog::getOpenFileName(this,
                                	tr("Open Image"), "/", tr("Image Files (*.png *.jpg *.bmp)"));
                                	QPixmap pix(fileName);
                                	ui->label->setPixmap(pix);
                                	const QSize s = pix.size();
                                	pixi = QImage(pix.toImage());
                                
                                	ui->label_2->setText( "Size: " + QString::number(s.width()) +" "+ QString::number(s.height()) );
                                
                                }
                                
                                void MainWindow::on_push2_clicked()
                                {
                                
                                
                                	for (int i=0;i<pixi.width();i+=z){
                                						 for (int j=0;j<pixi.height();j+=z){
                                							 k=k+0.06;
                                							Remplissage(pixi,QPoint(i,j),QSize(z,z),Couleurdominante(pixi,QPoint(i,j),QSize(z,z)));
                                
                                		}
                                	}
                                
                                	pixa=QPixmap::fromImage(pixi);
                                	ui->label_3->setPixmap(pixa);
                                	float a = k - 0.06*z;
                                	ui->label_4->setText(QString::number(a));
                                
                                }
                                
                                
                                
                                
                                void Remplissage(QImage& image, const QPoint& topLeft, const QSize& rectangle, const QColor& colour) {
                                
                                	int maxX = topLeft.x() + rectangle.width();
                                	int maxY = topLeft.y() + rectangle.height();
                                
                                	for(int x = topLeft.x(); x < maxX; ++x) {
                                		for(int y = topLeft.y(); y < maxY; ++y) {
                                			image.setPixelColor(x, y, colour);
                                			QMapIterator<QRgb, CostInfo> i;
                                			while (Costs.hasNext()) {
                                				i.next();
                                				QColor BaseColor( i.key() );
                                				if (Costs.contains( colour.rgb() ) || IsCloseColor(BaseColor, colour) )  {
                                					CostInfo& ci = Costs[colour.rgb()];
                                					int Cost = ci.Cost;
                                					QPixmap pix( ci.ImageName );
                                				}
                                
                                		}			}
                                	}
                                }
                                
                                
                                QColor Couleurdominante(const QImage & image,const QPoint & topLeft, const QSize & rectangle)
                                {
                                		int rouge = 0, vert = 0, bleue = 0;
                                
                                		int  X = topLeft.x() + rectangle.width();
                                		int  Y = topLeft.y() + rectangle.height();
                                
                                		for (int y = topLeft.y(); y < Y; y++)  {
                                				for (int x = topLeft.x(); x < X; x++)   {
                                						QRgb pixel = image.pixel(x, y);
                                
                                						rouge += qRed(pixel);
                                						vert += qGreen(pixel);
                                						bleue += qBlue(pixel);
                                				}
                                		}
                                
                                		int n = rectangle.width() * rectangle.height();
                                
                                		Q_ASSERT(n);
                                		if (n <= 0)
                                				return Qt::black;
                                
                                		return QColor(rouge / n, vert / n, bleue / n);
                                }
                                
                                
                                QMap<QRgb, CostInfo > Costs = {
                                	{ QColor(255 , 0 , 0 ).rgb(), { "://fraise.png", 10 }},
                                	{ QColor(0 , 255 , 0 ).rgb(), { "://balleverte.png", 20 }},
                                	{ QColor(0 , 0 , 255 ).rgb(), { "://ballebleue.png", 20 }},
                                	{ QColor(255 , 255 , 255 ).rgb(), { "://balleblanche.png", 20 }},
                                	{ QColor(255 , 128 , 0 ).rgb(), { "://ballepeche.png", 20 }},
                                	{ QColor(0 , 0 , 0 ).rgb(), { "://noir.png", 20 }},
                                	{ QColor(102 , 51 , 0 ).rgb(), { "://marron.png", 20 }},
                                	{ QColor(255 , 102 , 78 ).rgb(), { "://rose.png", 20 }},
                                	{ QColor(0 , 204 , 204 ).rgb(), { "://turquoise.png", 20 }},
                                	{ QColor(255 , 178 , 102 ).rgb(), { "://beige.png", 20 }},
                                	{ QColor(76 , 0 , 153 ).rgb(), { "://violet.png", 20 }},
                                	{ QColor(100 , 100 , 100 ).rgb(), { "://gris.png", 20 }},
                                };
                                
                                bool IsCloseColor( QColor c1, QColor c2 ) {
                                	int diffRed   = abs(c1.red() - c2.red());
                                	int diffGreen = abs(c1.green() - c2.green());
                                	int diffBlue  = abs(c1.blue()  - c2.blue());
                                
                                	if (diffBlue+diffRed+diffGreen< 100){
                                		return true;
                                
                                }	else{
                                				return false;
                                
                                
                                	}
                                }
                                
                                void MainWindow::on_verticalSlider_sliderMoved(int position)
                                {
                                	ui->verticalSlider->setRange(1,50);
                                		z=position;
                                }
                                

                                main .cpp

                                #include "mainwindow.h"
                                #include <QApplication>
                                #include <QPixmap>
                                #include <QCoreApplication>
                                #include <QFile>
                                #include <QString>
                                #include <QDebug>
                                #include <QTextStream>
                                #include <QMap>
                                #include <QMapIterator>
                                
                                int main(int argc, char *argv[])
                                {
                                	QApplication a(argc, argv);
                                	MainWindow w;
                                	w.show();
                                
                                	return a.exec();
                                }
                                

                                I am on windows 10
                                Qt 4.1.0

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on 29 Dec 2016, 13:14 last edited by
                                  #78

                                  It looks ok.
                                  What is the exact error you get?

                                  Also 4.1 is very old. Are you using old mingw too?

                                  Old compilers might not like the initialisation list/in place
                                  If you just do
                                  QMap<QRgb, CostInfo > Costs;

                                  Will it compile then?

                                  1 Reply Last reply
                                  0
                                  • P Offline
                                    P Offline
                                    Payx
                                    wrote on 29 Dec 2016, 13:55 last edited by Payx
                                    #79

                                    i added

                                    QMap<QRgb, CostInfo > Costs;
                                    

                                    In mainwindow.cpp

                                    and my error is !

                                    ![http://hpics.li/b0d194a](image url)

                                    with only QMap ... it compile

                                    1 Reply Last reply
                                    0
                                    • SGaistS Offline
                                      SGaistS Offline
                                      SGaist
                                      Lifetime Qt Champion
                                      wrote on 29 Dec 2016, 21:08 last edited by
                                      #80

                                      QMapIterator<QRgb, CostInfo> i; is wrong

                                      It should be something like

                                      QMap<QRgb, CostInfo>::const_iterator i = Costs.constBegin();
                                      while (i.hasNext()) {
                                      //etc.
                                      }
                                      

                                      Interested in AI ? www.idiap.ch
                                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      1 Reply Last reply
                                      0
                                      • P Offline
                                        P Offline
                                        Payx
                                        wrote on 29 Dec 2016, 21:37 last edited by
                                        #81

                                        @SGaist Thank you ! i think it works

                                        ![http://hpics.li/8a8e235](image url)

                                        i don't know how to solve the 3 first error

                                        1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on 29 Dec 2016, 21:40 last edited by
                                          #82

                                          Please, show the latest version of your code.

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          1 Reply Last reply
                                          0

                                          72/196

                                          28 Dec 2016, 21:57

                                          • Login

                                          • Login or register to search.
                                          72 out of 196
                                          • First post
                                            72/196
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved