GTK 키보드 리팩토링

6333 단어 gtkguibeginnersrust
내 이 사이트에서 키보드를 만드는 방법에 대해 이야기했습니다. 읽기 쉽게 만들기 위해 텍스트를 약간 수정해야 할 때라고 생각합니다. 버튼, 항목 및 레이블 구현을 포함하는 buttons.rs라는 파일을 하나 더 만들었습니다.

use gtk;
use gtk::{Button, Entry, Label};

pub fn create_button(label: &'static str) -> Button {
    let margin = 2;
    Button::builder()
        .label(label)
        .margin_start(margin)
        .margin_top(margin)
        .margin_end(margin)
        .margin_bottom(margin)
        .build()
}

pub fn create_entry() -> Entry {
    let margin = 2;
    Entry::builder()
        .margin_start(margin)
        .margin_top(margin)
        .margin_end(margin)
        .margin_bottom(margin)
        .build()
}

pub fn create_label(label: Option<&str>) -> Label {
    let margin = 2;
    let text: &str = label.unwrap_or("default string");
    Label::builder()
        .label(text)
        .margin_start(margin)
        .margin_top(margin)
        .margin_end(margin)
        .margin_bottom(margin)
        .build()
}


Option을 .lebel()에 추가할 수 없습니다. Option을 str로 변환해야 합니다label.unwrap_or("default string").
main.rs 파일에 buttons.rs 추가

gtk::prelude::* 사용;

mod gui;
mod buttons;


gui.rs에 크레이트로 기능 추가

use crate::buttons::create_label;
use crate::buttons::create_entry;
use crate::buttons::create_button;


이 예제에 따라 버튼, 레이블 및 원하는 모든 것을 선언하십시오.

let button_1 = create_button("Button 1");

let counter_label = create_label(Some("0.0"));

let label_time = create_label(None);

좋은 웹페이지 즐겨찾기