How to include .txt on Qt
- 
Yes , that should draw image as 8x8 at i,j. 
 Note the flag Qt::KeepAspectRatio which means it might not be 8x8 directly but
 maybe 8x6 if the original images was not square. AspectRatio means keep the relation between height and width.
- 
Yes , that should draw image as 8x8 at i,j. 
 Note the flag Qt::KeepAspectRatio which means it might not be 8x8 directly but
 maybe 8x6 if the original images was not square. AspectRatio means keep the relation between height and width.@mrjj 104 posts on this thread... you are a patient person mrjj. ;) I would have just written the program for him by now, lol. 
- 
@mrjj 104 posts on this thread... you are a patient person mrjj. ;) I would have just written the program for him by now, lol. @ambershark Lol I prefer learn instead of just don't understand what i'm doing, i know i'm very bad to programmation by now but maybe in few years i'il be like mrjj haha ! for the QPoint, i use it here : 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))); } }but i use the QPixmap scaledPix ..... 
 in my functionvoid Remplissage(QImage& image, const QPoint& topLeft, const QSize& rectangle, const QColor& colour) {so it tell that j and i was not declared in this scope so i declared i and j in my .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; }; int j; int i; 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); private: Ui::MainWindow* ui; QImage pixi; QPixmap pixa; float k; int a; int z = 1; int b; }; #endif // MAINWINDOW_HHit will work? // it tell that painter was not declared too, so i search to the QPainter class, it's "void QPainter::drawPixmap(const QPoint & point, const QPixmap & pixmap)" that i should use ? 
- 
Hi 
 hehe @ambershark , yes that would be faster but in this case,
 declaration and scopes are part of the exercise so hence the amount of posts. :)@Payx 
 The j and is local variable in your for loops
 Yes it will work to make them member of the class but you actually give them to
 Remplissage via the QPoint(i,j)
 Remplissage(pixi,QPoint(i,j),QSize(z,z),Couleurdominante(pixi,QPoint(i,j),QSize(z,z)));
 so inside the Remplissage function, i and j are
 int i = topLeft.x();
 int j=topLeft.y();- it tell that painter was not declared too, so i search to the QPainter class,
 Did you #include<QPainter> ?
 Calling it like 
 painter.drawPixmap(topLeft, scaledPix);
 should work.
- it tell that painter was not declared too, so i search to the QPainter class,
- 
@Payx 
 oh did you create the painter first ?
 Oh You need to create it first. as a variable.
 QPainter painter(this);But here comes an issue. you can only use a painter in a PaintEvent function. So only other way is to have a Pixmap as member and then paint to it in Remplissage 
 and then later paint the pixmap in PaintEvent.Anyway to paint to an image 
 QPixmap pix(500,500); // make sure size matches, might need to live as member in class for paintEvent
 QPainter painter(&pix);// give pix to painter
 ...
 painter.drawPixmap(topLeft, scaledPix); //
- 
ok but i have an other question, in my QMap, i defined my picture "fraise.png" as a QString ImageName; so when i write QPixmap pix( ci.ImageName );it will create a Pixmap from my image ? @Payx 
 yes that will create a pixmap if the path to image is valid.QPixmap pix( ci.ImageName ); BUT 
 you seems to store as e "fraise.png" ?
 That wont work as there is no path so it cant find it.However if you embed the images via qres file 
 then the syntax ":/"
 will allow to load them.
 ":/fraise.png"http://doc.qt.io/qt-5/resources.html 
 These images are then embedded into the .exe file and can be loaded with ":/" in front.If you want to use external files, you must think of how to handle the paths. 
- 
mrjj: SORRY i edited your post!. browser lag. cannot undo 
 Im very sorry.- Yes i have already do that u explained to me before ^^
 Oh. sorry. Well now we know its working :)
 seems good. Note its single ":/" not "://"
 and i dont understand the "Give pix to painter" When you construct the painter you give it the widget normally 
 QPainter painter(this); <<< "this" being the widget pointer
 but when we paint on image then we give pixmap instead of "this"
 QPainter painter(&pix); // pix is pixmap and not widget
 So basically we tell painter to draw on this picmap and not on a widget.
- Yes i have already do that u explained to me before ^^
- 
mrjj: SORRY i edited your post!. browser lag. cannot undo 
 Im very sorry.- Yes i have already do that u explained to me before ^^
 Oh. sorry. Well now we know its working :)
 seems good. Note its single ":/" not "://"
 and i dont understand the "Give pix to painter" When you construct the painter you give it the widget normally 
 QPainter painter(this); <<< "this" being the widget pointer
 but when we paint on image then we give pixmap instead of "this"
 QPainter painter(&pix); // pix is pixmap and not widget
 So basically we tell painter to draw on this picmap and not on a widget.@Payx 
 So you last issue is the painting of the little image.Since we are not allowed to paint inside Remplissage, you have 2 options. Do this in paintEvent. ( meaning call Remplissage ) 
 or
 let Remplissage paint on a new pixmap and then later paint this new pix in
 the real paintEvent function.
- Yes i have already do that u explained to me before ^^
- 
@Payx said in How to include .txt on Qt: What is the simpliest method ? ahah I think to paint on image as you can then later just 
 show in QLabel and might not even need to make a PaintEvent.
 This new image should be the size of the red rect one where u scan for colors.
 so you will draw the mini images on this new picmap and then its the final pixmap i assume.
- 
so in this loop for(int x = topLeft.x(); x < maxX; ++x) { for(int y = topLeft.y(); y < maxY; ++y) {i can include QLabel *label = new QLabel(this); foreach( QRgb key, Costs.keys() ) { QColor BaseColor( key ); if (Costs.contains( colour.rgb() ) || IsCloseColor(BaseColor, colour) ) { CostInfo& ci = Costs[colour.rgb()]; // int Cost = ci.Cost; QPixmap pix( ci.ImageName ); QPixmap scaledPix = pix.scaled( 8, 8, Qt::KeepAspectRatio, Qt::SmoothTransformation ); ui->label->setPixmap(pix);? 
- 
so in this loop for(int x = topLeft.x(); x < maxX; ++x) { for(int y = topLeft.y(); y < maxY; ++y) {i can include QLabel *label = new QLabel(this); foreach( QRgb key, Costs.keys() ) { QColor BaseColor( key ); if (Costs.contains( colour.rgb() ) || IsCloseColor(BaseColor, colour) ) { CostInfo& ci = Costs[colour.rgb()]; // int Cost = ci.Cost; QPixmap pix( ci.ImageName ); QPixmap scaledPix = pix.scaled( 8, 8, Qt::KeepAspectRatio, Qt::SmoothTransformation ); ui->label->setPixmap(pix);? 
- 
Because it will not return only one picture, if my picture is 540540 and my rectangle is 88 i cannot just add a label to display 70 picture. at the end it will have http://www.hostingpics.net/viewer.php?id=354728program.png by replacing all the rectangle by a picture, it depends the color of the rectangle 
- 
@ambershark Lol I prefer learn instead of just don't understand what i'm doing, i know i'm very bad to programmation by now but maybe in few years i'il be like mrjj haha ! for the QPoint, i use it here : 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))); } }but i use the QPixmap scaledPix ..... 
 in my functionvoid Remplissage(QImage& image, const QPoint& topLeft, const QSize& rectangle, const QColor& colour) {so it tell that j and i was not declared in this scope so i declared i and j in my .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; }; int j; int i; 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); private: Ui::MainWindow* ui; QImage pixi; QPixmap pixa; float k; int a; int z = 1; int b; }; #endif // MAINWINDOW_HHit will work? // it tell that painter was not declared too, so i search to the QPainter class, it's "void QPainter::drawPixmap(const QPoint & point, const QPixmap & pixmap)" that i should use ? @Payx said in How to include .txt on Qt: @ambershark Lol I prefer learn instead of just don't understand what i'm doing, i know i'm very bad to programmation by now but maybe in few years i'il be like mrjj haha ! Haha it's good that you are learning instead of asking for it done like a lot of people on these forums. And hey we all started out bad, don't worry you'll be good in no time if you stick with it. ;) I was just quite impressed with the number of posts in this topic. 
- 
@Payx said in How to include .txt on Qt: @ambershark Lol I prefer learn instead of just don't understand what i'm doing, i know i'm very bad to programmation by now but maybe in few years i'il be like mrjj haha ! Haha it's good that you are learning instead of asking for it done like a lot of people on these forums. And hey we all started out bad, don't worry you'll be good in no time if you stick with it. ;) I was just quite impressed with the number of posts in this topic. @ambershark No problem ^^! 
