간편한 Linux(Ubuntu) GUI 앱 개발 부품 샘플집

각 컨트롤에 대한 샘플



Git Sourth

컨트롤의 위치 지정
Fixed fixed1 = new Fixed();
fixed1.Put(コントロールUI, x, y);
fixed1.Move(コントロールUI, x, y);
this.fixed1.Move(コントロールUI, x, y);

라벨에 텍스트 입력
label1.Text = "testtest";

체크 버튼에 이벤트 추가

GUI 디자이너에서도 클릭하여 이벤트 문을 자동으로 생성할 수 있습니다.
//チェックボックスをOnにする
checkbutton1.Active = true;
checkbutton1.Clicked += clickedCallback;

void clickedCallback(object obj, EventArgs args) {
    if(((ToggleButton)obj).Active) {

    }       
}
checkbutton2.Active = false;
checkbutton2.Clicked += delegate (object obj, EventArgs args) {
    if(((ToggleButton)obj).Active) {

    }
};

라디오 버튼에 이벤트 추가
//ラジオボックスをOnにする
radiobutton1.Active = true;
radiobutton1.Clicked += radioBtnClickedCallback;
void radioBtnClickedCallback(object obj, EventArgs args) {
    if(((RadioButton)obj).Active) {

    }
}

radiobutton2.Active = false;
radiobutton2.Clicked += delegate (object obj, EventArgs args) {
    if(((RadioButton)obj).Active) {

    }
};

이미지 보기

그 외에도 바이너리 데이터를 직접 넣어 표시할 수도 있습니다.
image1.Pixbuf = new Pixbuf("画像ファイル名");

textView 보기
textview1.Buffer.Text = "testtest";

spin 버튼에 숫자 설정
spinbutton1.Value = 1;

TreeView를 표시하는 Extension을 사용 (git에 올라 있습니다)
Gtk.TreeViewColumnEx artistColumn = new Gtk.TreeViewColumnEx();
artistColumn._mkCellRendererText();
artistColumn.Sizing = TreeViewColumnSizing.Fixed;
artistColumn.FixedWidth = 200;
artistColumn.Title = "Artist";
artistColumn.bindingPropertyName = "Artist";

Gtk.TreeViewColumnEx songColumn = new Gtk.TreeViewColumnEx();
songColumn._mkCellRendererText();
songColumn.Sizing = TreeViewColumnSizing.Fixed;
songColumn.FixedWidth = 200;
songColumn.Title = "Song Title";
songColumn.bindingPropertyName = "Title";

Gtk.TreeViewColumnEx deleteCheckColumn = new Gtk.TreeViewColumnEx();
CellRendererToggle toggleCell = deleteCheckColumn._mkCellRendererToggle();
deleteCheckColumn.Sizing = TreeViewColumnSizing.Fixed;
deleteCheckColumn.FixedWidth = 50;
deleteCheckColumn.Title = "削除";
deleteCheckColumn.bindingPropertyName = "Effective";

toggleCell.Toggled += delegate (object o, ToggledArgs args) {
    TreeIter iter;
    if(musicListStore.GetIterFromString(out iter, args.Path)) {
        Song Song1 = (Song)musicListStore.GetValue(iter, 0);        
    }
};

treeview2.AppendColumn(artistColumn);
treeview2.AppendColumn(songColumn);
treeview2.AppendColumn(deleteCheckColumn);

artistColumn._mkBinding();
songColumn._mkBinding();
deleteCheckColumn._mkBinding();

treeview2.Model = musicListStore;

this.ShowAll();

Comobox를 표시하는 Extension을 사용 (git에 오르고 있습니다)
combobox20._mkCellRendererText("Artist");

combobox20._mkBinding();

combobox20.Model = musicListStore;

MenuBar ToolBar StatusBar 보기



Git Sourth

VBox를 추가합니다. Box를 세로로 4개로 합니다

맨 위에 있는 Box에 MenuBar를 추가합니다. 메뉴 항목을 추가합니다. 속성 신호에서 Toggled를 클릭하면 이벤트 문이 자동으로 생성됩니다.

두 번째 Box에 ToolBar를 추가합니다. 아이콘을 추가하겠습니다.

3번에 Filxed를 추가합니다. 높이 추가

네 번째로 StatusBar를 추가합니다.

UI 컨트롤의 래핑된 쐐기 만들기



Git Sourth

할 수 있는 일
UIControl을 상속한 UIControlEx 클래스를 만들 수 있습니다. OverRide도 할 수 있는 것 같습니다.
도구 상자에 컨트롤 아이콘이 등록되어 드래그하여 사용할 수 있습니다.

새로운 프로젝트를 만듭니다. 새 웨지 선택


Widget.cs 파일을 엽니다. 디자이너 탭을 누릅니다.

도구 상자에서 컨트롤을 선택하고 디자이너로 드래그합니다. 여기에서 Combox를 선택합니다.

Conbo가 드래그된 상태


모두 빌드합니다.


도구 상자에 맞춤 웨지가 표시됩니다.


MainWindow 디자이너에 배치합니다. Width의 값을 설정합니다.


웨지 컴포넌트의 private에 CombBox가 생성되고 있으므로, Getter등에서 꺼내 사용합니다.
쐐기 구성 요소에 속성을 작성하면 UIControll을 상속받은 클래스에 속성을 추가한 것처럼 느껴집니다.
using Gtk;
namespace wegeTest1 {
    [System.ComponentModel.ToolboxItem(true)]
    public partial class ComboWidget : Gtk.Bin {
        public ComboWidget() {
            this.Build();
        }
        public string bindingProperyName = "";
        public ComboBox _mkComoboBox() {
            return combobox15;
        }
        public ComboBox Combo {
            get {
                return combobox15;
            }
        }
    }
}

OverRide의 방법
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 20469706 / ぉ ぢ ぢ ゜ ㅇ

숙련하면 이런 것을 만들 수 있게 됩니다.

GtkSharp

간편한 Linux Gui 앱 개발 입문
간편한 Linux GUI 앱 개발 초급 전편
간편한 Linux GUI 앱 개발 초급 후편

좋은 웹페이지 즐겨찾기