How to add a QR code to an image
Filter > Render > QR Code in Paint by Zaweba draws a QR code straight onto a layer, with versions 1 to 10 and error correction from L to H.

In Paint by Zaweba, a QR code is a filter. Choose Filter > Render > QR Code, type the text or web address it should hold, pick a version and an error correction level, and the code is drawn as pixels onto the current layer. Versions run from 1 to 10 and error correction from L to H, and the generator is written in house, so nothing goes online.
Adding a QR code to a poster, a flyer or a menu usually means a trip to a website, then downloading a picture and placing it. Making it inside the editor skips all that, and keeps the link private until the poster goes out.
What you need
The design you want the code in, and Paint by Zaweba on Windows. It's free and works offline. Have the exact text or address ready, and check it carefully before you make the code, since a typo in a printed QR code can't be fixed later.
Step by step
Add a new empty layer for the code. Keeping it on its own layer means you can move, scale or hide it later without touching the design. If you want a white square behind it, fill a selection on a layer below.
Choose Filter > Render > QR Code. Enter the content. Choose an error correction level: L, M, Q or H. Higher levels repeat more of the data inside the code, so it can still be read if part of it is damaged, dirty or partly covered, at the cost of a denser pattern. M is a sensible middle ground for print. Choose H if you plan to place something over the middle, such as a small logo.
The version sets how big the grid of squares is. Longer content needs a higher version. Versions 1 to 10 are offered, which covers web addresses, short messages and contact details.
Apply it. The code appears as pixels on the layer.
Size and placement
Because the code is pixels rather than a shape, make it at the size you need in the final design. Scaling a pixel QR code down is usually fine, but scaling it up can soften the edges, and a phone camera wants crisp edges. If you do need it bigger, use hard edged resampling, which keeps each square sharp.
Leave a clear margin of plain background around the code, a quiet zone. Without it, phone cameras can struggle to find the edges. Keep strong contrast too: dark squares on a light background read best.
Testing
Before you print, test the code with a phone, ideally two different ones, at the size it will be printed. Test from a normal reading distance, not just held up to the screen. If it's slow to scan, make it bigger, increase the quiet zone or use a lower version with shorter content.
Other ways to do it
Paint by Zaweba's Filter > Render menu also has a Barcode generator for EAN-13 and Code 128, which works the same way. If you make a lot of codes, or need them as crisp vector shapes, a dedicated code maker can suit that job better. For dropping a working QR code into a picture you're already editing, though, the filter is the quickest route there is.