Help us understand the problem. What is going on with this article?

Ruby/Tkを使ったGUIツールについて

More than 3 years have passed since last update.

QiitaのRubyAdventCalendar2015に興味本位で参加してみました。
参加することに意義があり、何事も初なので、市場として未開拓のようなまたはすでに需要がない分野を語ってきます。

長文をだらだらと書いていくつもりなので、読まない部分は適当に流してくれて大丈夫です。それでは、いきます。

今年はTubuyakiというツールを作りました。まだまだ色々、修正できるのではないだろうかと試行錯誤しています。
それはいつでもいくらでも更新できてしまうので、あまり意気込みをせずにただ、シンプルなつぶやきツールを作ろう...と。

このつぶやきツールは、保存はできず、ただ入力してつぶやき、つぶやいた内容を手動で消して、またつぶやいていくそんな操作をします。

誰得もしないようなツールですが、ツイッターのように記録されて後々周囲に迷惑や厄介を残さないため、危険な発言は鍵アカよりも確実に止めることができます。※なんせ、その場のPCだけのつぶやきなもので...宣伝のようになりますが、RubyGemsより、

$ gem install tubuyaki

$ tubuyaki

と入力すれば動作するので、シンプルにRuby/Tkが動作するか試せます。

無駄に時間を浪費している最近の取り組みと言えば、TwitterのAPIに対応しようとしたところ。
ただ、APIが1.1に上がったことで、認証をしなければ、タイムラインでさえ取得できないことから始まりルールが何原則かできていてなんとも使いにくいのが、残念です。そうしなければいけないルールがあることはしょうが無いので...新しい発想でそのルールをうまく利用する方法を時間をかけて攻略していくのが課題です。もう少し...シミュレーションしたいですね。

このtubuyakiをzipファイルでGithubに追加しました→2015年11月14日

変更点

・つぶやくボタンを顔文字から画像に変更する

その作業をしていました。これによりTwitterのようでありつつ、誰にも知られることがないつぶやきツールに近づいているように想います。

MITライセンスとして公開しているので、この辺りから改変するぞって想う人はGithubからソースを持って、取り組んでみるとよりオリジナルなつぶやきツールができて、かっこよさが上がるかもしれません。

疑問点

・複数のつぶやきを同一のウインドウに表示する方法がわからなかった

これを知りたいと想ってます、何かいい方法はないでしょうか...これができて、あとは開いている場所にアクセスできると、限られた場所で簡単な雑談ができるような期待を持ってます。このサービス、Ruby on Railsでは得意な範囲でしょうか....

2015年11月13日更新(暇があれば更新していきます)、tubuyakiのソース

#  Copyright © 2015 Takayuki, Kamiyama

require 'tk'

window = TkRoot.new{
title 'tubuyaki'
resizable [0,0]
}

window1 = TkToplevel.new{
title 'boyaki is shout!'
}

TkLabel.new(nil,
:text => "ひとりごと...顔だけキン肉マン...かおだけきん...",
:fg => "blue").pack
#家族、曰く私が眠くなるという独り言らしい

entry = TkEntry.new.pack('side'=>'left')

c = TkButton.new{
  image TkPhotoImage.new("file" => "tweet_icon.gif")
  pack('fill'=>'x',"padx"=>2.5,"pady"=>2.5)
}

c.command proc {

 saikoro = Random.rand(6)

 case saikoro

 when 4 then
 TkLabel.new(window1,
        :text => ("#{entry.value}"),
        :fg => "black",
        :bg => "yellow").pack('fill'=>'x',"padx" => 2.5,"pady" => 2.5)
 when 3 then
 TkLabel.new(window1,
        :text => ("#{entry.value}"),
        :fg => "black",
        :bg => "white").pack('fill'=>'x',"padx" => 2.5,"pady" => 2.5)
 when 2 then
 TkLabel.new(window1,
        :text => ("#{entry.value}"),
        :fg => "white",
        :bg => "black").pack('fill'=>'x',"padx" => 2.5,"pady" => 2.5)

 when 1 then
 TkLabel.new(window1,
        :text => ("#{entry.value}"),
        :fg => "black",
        :bg => "green").pack('fill'=>'x',"padx" => 2.5,"pady" => 2.5)

 when 0 then
 TkLabel.new(window1,
        :text => ("#{entry.value}"),
        :fg => "white",
        :bg => "red").pack('fill'=>'x',"padx" => 2.5,"pady" => 2.5)

 else
   TkLabel.new(window1,
        :text => ("#{entry.value}"),
        :fg => "white",
        :bg => "blue").pack('fill'=>'x',"padx" => 2.5,"pady" => 2.5)

end
}

Tk.mainloop

参考サイト

Ruby/Tk

Github(Myレポジトリ)

tubuyaki

おまけ

コメントアウトしているところの経緯

眠くなると意味不明なことを言う癖があって、顔だけキン肉マンという単語を話していたと家族に言われました。

TVをみていたことを覚えているのですが、誰をみて言ったのか全然思い出せません。

思い出しても、語ることはないですが、失礼なことを言って申し訳ありません( ̄。 ̄;)

それでは、明日からの方へ話が広がっていくと嬉しいです。

貴重な機会ありがとうございました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away