What are QR codes ?
How do you use the QR code for payment function on the wallet ?
When would you use it ?
When using bitcoin to pay at the point-of-sale or for a face-to-face transaction, there is the problem of how to communicate the Bitcoin address to be paid in a way that the person paying can use.
A bitcoin address is just data, but it is between 27 and 34 characters so that is way to much info to expect the person paying to have to manually type in.
A QR code can easily represent this amount of data in a machine-readable manner and do so reliably. The QR code can contain other information as well -- such as an amount and a message and other fields as well -- thanks to a URI scheme for Bitcoin.
So with a mobile, a convenient way to pass that data is for the payment recipient (e.g., a merchant) to display a QR code with the Bitcoin address for the transaction, and then for the person paying to scan that QR code to obtain the bitcoin address.
A mobile app called Barcode scanner from ZXing is the most widely used app on Android for this.
If you are paying using the Blockchain for Android mobile app, then that app will let you touch the QR code button to launch the Barcode scanner app. When the scan is complete, the Bitcoin address field (and amount field if the QR code contained the amount) will then be populated with the data from the QR code. The person paying then hits send and the bitcoin transaction gets created and broadcasted by the mobile app. Web-based wallets (e.g., Instawallet.org) can use a QR code as well, except the user may need manually do a paste of the clipboard contents after scanning.
The merchant or trader might use the same mobile app (e.g., Blockchain for Android) which has a built-in method to create and display the QR code for the customer to send payment to which occurs in just one step. Many clients (including Bitcoin-Qt), EWallets and payment processors such as BitPay and WalletBit will show a QR code (or a method to get the QR code displayed) for receiving payment.
For those wishing to create a QR code manually can do so using a web-based service such as Wolfram Alpha or several other methods. This does introduce a vulnerability however in that the provider of the QR code could detect that this is a Bitcoin address and maliciously interject another address that the provider controls -- thus directing the consumer to pay the wrong address. So using only a trustworthy source to generate the QR codes is recommended.
Nowadays pretty much every device has a camera built in so it is much easier to scan the QR code rather than typing very long Bitcoin account address. If you have wallet in your mobile phone and you want to send money to someone he can email you the QR code and you will be able to scan it quickly with your phone and send the money. Without that you would have to type in on your phone the whole Bitcoin address.
The same goes to receiving Bitcoins, you can easily send QR code to someone. If you make face to face transactions with Bitcoin you can exchange Bitcoin addresses just in few seconds, without typing.
To generate a QR code you can use one of the free online tools like http://qrcode.kaywa.com/ or http://goqr.me/, after generating the code you can save it as a JPG file, print it and keep it in your wallet or even order a custom t-shirt so people can donate you some Bitcoins in the shopping centre just by pointing their cameras at you :D
As of November 2013, Bitcoin-qt generates a QR code.
Click the Addresses button at the top of the window, highlight the wallet address you want, and then click the "Show QR Code" button at the bottom of the window. Add a message, if you want, or not, and then click the "Save As" button. It will be saved as a PNG image file.
The easiest way to create a bitcoin qr code is to use www.btcfrog.com/qr and just fill in the address and maybe amount boxes and press "generate QR code".
This also makes it ideal for adding in BB-code or other kinds of posts.