1e41f4b71Sopenharmony_ci# <qrcode> Development 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciThe **<qrcode>** component is used to generate and display a QR code. For details, see [qrcode](../reference/apis-arkui/arkui-js/js-components-basic-qrcode.md). 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## Creating a <qrcode> Component 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ciCreate a **<qrcode>** component in the .hml file under **pages/index**. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci```html 13e41f4b71Sopenharmony_ci<!-- xxx.hml--> 14e41f4b71Sopenharmony_ci<div class="container"> 15e41f4b71Sopenharmony_ci <qrcode value="Hello"></qrcode> 16e41f4b71Sopenharmony_ci</div> 17e41f4b71Sopenharmony_ci``` 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci```css 21e41f4b71Sopenharmony_ci/* xxx.css */ 22e41f4b71Sopenharmony_ci.container { 23e41f4b71Sopenharmony_ci width: 100%; 24e41f4b71Sopenharmony_ci height: 100%; 25e41f4b71Sopenharmony_ci flex-direction: column; 26e41f4b71Sopenharmony_ci align-items: center; 27e41f4b71Sopenharmony_ci justify-content: center; 28e41f4b71Sopenharmony_ci background-color: #F1F3F5; 29e41f4b71Sopenharmony_ci} 30e41f4b71Sopenharmony_ci``` 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci> **NOTE** 35e41f4b71Sopenharmony_ci> 36e41f4b71Sopenharmony_ci> The **value** parameter must be set. 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci## Setting the Component Type 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ciSet the **type** attribute to select the QR code type from rectangle and circle. 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci```html 45e41f4b71Sopenharmony_ci<!-- xxx.hml--> 46e41f4b71Sopenharmony_ci<div class="container"> 47e41f4b71Sopenharmony_ci <select onchange="settype"> 48e41f4b71Sopenharmony_ci <option for="{{bcol_list}}" value="{{$item}}">{{$item}}</option> 49e41f4b71Sopenharmony_ci </select> 50e41f4b71Sopenharmony_ci <qrcode value="Hello" type="{{qr_type}}"></qrcode> 51e41f4b71Sopenharmony_ci</div> 52e41f4b71Sopenharmony_ci``` 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci```css 56e41f4b71Sopenharmony_ci/* xxx.css */ 57e41f4b71Sopenharmony_ci.container { 58e41f4b71Sopenharmony_ci width: 100%; 59e41f4b71Sopenharmony_ci height: 100%; 60e41f4b71Sopenharmony_ci flex-direction: column; 61e41f4b71Sopenharmony_ci align-items: center; 62e41f4b71Sopenharmony_ci justify-content: center; 63e41f4b71Sopenharmony_ci background-color: #F1F3F5; 64e41f4b71Sopenharmony_ci} 65e41f4b71Sopenharmony_ciselect{ 66e41f4b71Sopenharmony_ci margin-top: 50px; 67e41f4b71Sopenharmony_ci margin-bottom: 50px; 68e41f4b71Sopenharmony_ci} 69e41f4b71Sopenharmony_ci``` 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci```js 73e41f4b71Sopenharmony_ci// index.js 74e41f4b71Sopenharmony_ciexport default { 75e41f4b71Sopenharmony_ci data: { 76e41f4b71Sopenharmony_ci qr_type: 'rect', 77e41f4b71Sopenharmony_ci bcol_list: ['rect','circle'] 78e41f4b71Sopenharmony_ci }, 79e41f4b71Sopenharmony_ci settype(e) { 80e41f4b71Sopenharmony_ci this.qr_type = e.newValue 81e41f4b71Sopenharmony_ci }, 82e41f4b71Sopenharmony_ci} 83e41f4b71Sopenharmony_ci``` 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci## Setting Styles 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ciSet the **color** and **background-color** attributes to set the color and background color of a QR code. 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci```html 94e41f4b71Sopenharmony_ci<!-- xxx.hml--> 95e41f4b71Sopenharmony_ci<div class="container"> 96e41f4b71Sopenharmony_ci <qrcode value="Hello" type="rect"></qrcode> 97e41f4b71Sopenharmony_ci</div> 98e41f4b71Sopenharmony_ci``` 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci```css 102e41f4b71Sopenharmony_ci/* xxx.css */ 103e41f4b71Sopenharmony_ci.container { 104e41f4b71Sopenharmony_ci width: 100%; 105e41f4b71Sopenharmony_ci height: 100%; 106e41f4b71Sopenharmony_ci flex-direction: column; 107e41f4b71Sopenharmony_ci align-items: center; 108e41f4b71Sopenharmony_ci justify-content: center; 109e41f4b71Sopenharmony_ci background-color: #F1F3F5; 110e41f4b71Sopenharmony_ci} 111e41f4b71Sopenharmony_ciqrcode{ 112e41f4b71Sopenharmony_ci width: 300px; 113e41f4b71Sopenharmony_ci height: 300px; 114e41f4b71Sopenharmony_ci color: blue; background-color: #ffffff; 115e41f4b71Sopenharmony_ci} 116e41f4b71Sopenharmony_ci``` 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci> **NOTE** 121e41f4b71Sopenharmony_ci> - If the values of **width** and **height** are different, the smaller value is used as the length of the QR code. The generated QR code is center displayed. 122e41f4b71Sopenharmony_ci> 123e41f4b71Sopenharmony_ci> - If either **width** or **height** is set, the value is used as the length of the QR code. If neither of them is set, the default length of 200 px is used. 124e41f4b71Sopenharmony_ci> 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci## Example Scenario 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ciIn this example, you can bind a QR code to a text box, and change the QR code by replacing the content in the text box. 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci```html 133e41f4b71Sopenharmony_ci<!-- xxx.hml--> 134e41f4b71Sopenharmony_ci<div class="container"> 135e41f4b71Sopenharmony_ci <input style="margin-bottom: 100px;" onchange="change"></input> 136e41f4b71Sopenharmony_ci <qrcode value="{{textVal}}"></qrcode> 137e41f4b71Sopenharmony_ci</div> 138e41f4b71Sopenharmony_ci``` 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci```css 142e41f4b71Sopenharmony_ci/* xxx.css */ 143e41f4b71Sopenharmony_ci.container { 144e41f4b71Sopenharmony_ci width: 100%; 145e41f4b71Sopenharmony_ci height: 100%; 146e41f4b71Sopenharmony_ci flex-direction: column; 147e41f4b71Sopenharmony_ci align-items: center; 148e41f4b71Sopenharmony_ci justify-content: center; 149e41f4b71Sopenharmony_ci background-color: #F1F3F5; 150e41f4b71Sopenharmony_ci} 151e41f4b71Sopenharmony_ciqrcode{ 152e41f4b71Sopenharmony_ci width: 400px; 153e41f4b71Sopenharmony_ci height: 400px; 154e41f4b71Sopenharmony_ci} 155e41f4b71Sopenharmony_ci``` 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci```js 159e41f4b71Sopenharmony_ci// index.js 160e41f4b71Sopenharmony_ciexport default{ 161e41f4b71Sopenharmony_ci data: { 162e41f4b71Sopenharmony_ci textVal: '' 163e41f4b71Sopenharmony_ci }, 164e41f4b71Sopenharmony_ci change(e){ 165e41f4b71Sopenharmony_ci this.textVal = e.value 166e41f4b71Sopenharmony_ci } 167e41f4b71Sopenharmony_ci} 168e41f4b71Sopenharmony_ci``` 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci 171