iced(비교)

r7 vs r8
......
1010== 사용법 ==
1111[[iced 구조.svg]]
1212iced는 기본적으로 위의 구조를 갖고 있다. 먼저 UI에서 사용자가 상호작용하면 update 로직에 보낼 Message 열거를 만들어보자
13{{{#syntax rust
13{{{#!syntax rust
1414enum Message {
1515 Hello,
1616 Bye
1717}}}}
1818그리고 데이터를 담을 state 구조체를 만들자
19{{{#syntax rust
19{{{#!syntax rust
2020#[derive(Default)]
2121struct State {
2222 say:String
2323}}}}
2424say의 기본값을 "hello"로 지정해주고 싶으면 derive 메크로를 제거하고
25{{{#syntax rust
25{{{#!syntax rust
2626impl Default for State {
2727 fn default() Self {
2828 Self {
......
3131 }
3232}}}}를 추가해주자.[* 사실 iced::application이라는 대응 함수도 있는데 부실한 문서화때문에 사용하기 어렵다]
3333그리고 상호작용을 할 때 실행될 update 함수를 만들자
34{{{#syntax rust
34{{{#!syntax rust
3535fn update(state:&mut State, message:Message) {
3636 match Message {
3737 Hello => {
......
4343 }
4444}}}}
4545마지막으로 UI를 담당할 view 함수를 만들고
46{{{#syntax rust
46{{{#!syntax rust
4747use iced::Element;
4848use iced::widget::{button, column, text};
4949
......
5555 ].into()
5656}}}}
5757iced::run으로 실행하자
58{{{#syntax rust
58{{{#!syntax rust
5959fn main () -> iced::Result {
6060 iced::run(update, view)?
6161}}}}
......