How to include .txt on Qt
-
@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 ^^
-
@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. -
@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);
?
-
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
-
@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 ^^!
-
@Payx said in How to include .txt on Qt:
scaledPix
Sounds like scaledPix is not initialize as it should , which often
comes from not being able to load a file.Make sure the image you are scaling, is indeed valid. (loaded)
-
Yes That would make the pix valid.
To get the error " Pixmap is a null pixmap" for scaledPix means that
it was not valid. It was empty. so if it came from a scale function, it means
that the image u scaled to get scaledPix was empty.Happy new Year :)
-
QLabel abc; // int Cost = ci.Cost; QPixmap pix( ci.ImageName ); QPixmap scaledPix = pix.scaled( 8, 8, Qt::KeepAspectRatio, Qt::SmoothTransformation ); abc.setPixmap(scaledPix); abc.show();
i have this :
so the error come from "QPixmap pix" who is empty
so the line "QPixmap pix( ci.ImageName );" dont create a pixmap from my QMap ?
-
- QPixmap pix( ci.ImageName );" dont create a pixmap from my QMap ?
That would be my guess yes.
You can check pix with isNull()