자체 제작 GUI 라이브러리 awebview에서 D 언어 군 귀여운
9735 단어 dlang
D언어군귀여운
namachan 씨의 DlangUI de Dlang-man 을 박 r…, 아니, 영감을 받았습니다.
자작 D 언어용 GUI 라이브러리 awebview을 사용하여 만들었습니다. 슬프게도 아직 Windows에서만 사용할 수 있습니다. 그 중 리눅스와 맥에서도 사용할 수 있도록 합니다.
코드
awebview에서는 HTML을 사용하여 UI 부분을 작성합니다.
<!doctype html>
<html lang="jp">
<head>
<title>Hello</title>
</head>
<body>
<img src="views/dman.png">
%[elements["b_kawaii"].html%]
</body>
</html>
그리고는, UI의 제어 부분.
import awebview.gui.application;
import awebview.gui.activity;
import awebview.gui.html;
import awebview.gui.widgets.text;
import awebview.gui.widgets.button;
import awebview.wrapper;
import carbon.functional : passTo;
import std.random;
import std.datetime;
void main()
{
auto app = SDLApplication.instance;
auto pref = WebPreferences.recommended;
with(app.newFactoryOf!SDLActivity(pref)){
id = "MainActivity";
width = 600;
height = 400;
title = "aaa";
// ページの作成とか
app.addActivity(newInstance.passTo!((a){
a.load(new DManPage("dmanPage"));
}));
}
app.run();
}
// ページ
class DManPage : TemplateHTMLPage!(import(`dman.html`))
{
this(string id)
{
super(id, null);
// ボタンの作成
this ~= _kawaii = new InputButton!()("b_kawaii");
_kawaii.staticProps["value"] = "D言語くん可愛い!!!";
_kawaii.onClick.connect!"onClickKawaii"(this); // クリック時のイベント
}
void onClickKawaii()
{
// <p>タグの作成
auto dmanText = new Paragraph!()(format("dmanText%d", ++_count));
this ~= dmanText; // このページに登録
this.activity[$("body")].append(dmanText.html); // このページのbodyの末尾に追加
dmanText.text = "D言語くん可愛い"; // <p>タグの内部にテキスト
// 以下3行で, ランダムに位置を表示する
dmanText.staticProps["style.position"] = "absolute";
dmanText.staticProps["style.top"] = format("%dpx", uniform(0, 300));
dmanText.staticProps["style.left"] = format("%dpx", uniform(0, 500));
}
private:
InputButton!() _kawaii;
size_t _count;
}
awebview 사용법
D언어 AdventCalendar의 24일째 기사로 쓸 예정입니다. 졸론 트라이.
Reference
이 문제에 관하여(자체 제작 GUI 라이브러리 awebview에서 D 언어 군 귀여운), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k3_kaimu/items/605a03ba7c261ffc710c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<!doctype html>
<html lang="jp">
<head>
<title>Hello</title>
</head>
<body>
<img src="views/dman.png">
%[elements["b_kawaii"].html%]
</body>
</html>
import awebview.gui.application;
import awebview.gui.activity;
import awebview.gui.html;
import awebview.gui.widgets.text;
import awebview.gui.widgets.button;
import awebview.wrapper;
import carbon.functional : passTo;
import std.random;
import std.datetime;
void main()
{
auto app = SDLApplication.instance;
auto pref = WebPreferences.recommended;
with(app.newFactoryOf!SDLActivity(pref)){
id = "MainActivity";
width = 600;
height = 400;
title = "aaa";
// ページの作成とか
app.addActivity(newInstance.passTo!((a){
a.load(new DManPage("dmanPage"));
}));
}
app.run();
}
// ページ
class DManPage : TemplateHTMLPage!(import(`dman.html`))
{
this(string id)
{
super(id, null);
// ボタンの作成
this ~= _kawaii = new InputButton!()("b_kawaii");
_kawaii.staticProps["value"] = "D言語くん可愛い!!!";
_kawaii.onClick.connect!"onClickKawaii"(this); // クリック時のイベント
}
void onClickKawaii()
{
// <p>タグの作成
auto dmanText = new Paragraph!()(format("dmanText%d", ++_count));
this ~= dmanText; // このページに登録
this.activity[$("body")].append(dmanText.html); // このページのbodyの末尾に追加
dmanText.text = "D言語くん可愛い"; // <p>タグの内部にテキスト
// 以下3行で, ランダムに位置を表示する
dmanText.staticProps["style.position"] = "absolute";
dmanText.staticProps["style.top"] = format("%dpx", uniform(0, 300));
dmanText.staticProps["style.left"] = format("%dpx", uniform(0, 500));
}
private:
InputButton!() _kawaii;
size_t _count;
}
Reference
이 문제에 관하여(자체 제작 GUI 라이브러리 awebview에서 D 언어 군 귀여운), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k3_kaimu/items/605a03ba7c261ffc710c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)