月別アーカイブ: 2012年6月

GUIのメニュー項目名に引かれた下線




前々からGUIのメニューバーに並んでる文字列中の一部の文字に下線が引いてあるのがずっと気になってた(上の画像で言うと”File”の’F’とか”Edit”の’E’とか)。
Qtの勉強してたらその理由がついにわかった。

あの下線はメニューに割り当てられたキーボードアクセラレータの文字を表してるらしい。
例えば”Edit”の’E’に下線が引いてあったとするとそのメニューには”Alt+E”が割り当てられている。

あとそれに関連したおまけ情報をさらに2つ。

  • キーボードアクセラレータの自動割付けに利用できる“Kuhn-Munkres Algotithm”というアルゴリズムがある。メニューの数が多い場合はこのアルゴリズムを用いると自動で最適な割付を求めることができる(らしい)。
  • メニュー項目の中には”OpenFile…”のように、末尾にピリオドが3つ付いたものがある。これはそのメニューを選択すると、その後何らかの入力をユーザに要求する、ということを表している(開くファイル名の入力、検索キーワードの入力、など)。
  • 色々作法があるようで。
    こういう細かいTIPS集めたサイトとか本とかって無いのかな。

    史上最大の発明アルゴリズム

    “史上最大の発明アルゴリズム”を読んだ。

    “コンピュータに問題を解決させるための覚え書き”としてのアルゴリズムが、どのように発明されたのかについての経緯が書いてある。
    アルキメデス、ライプニッツ、ゲーデル、テューリングなどなど。
    時代を経て、何人もの論理学者、数学者を介して、抽象的なものに数学的な表現が与えられ、徐々にその輪郭がはっきりしていく過程が面白い。

    最後の方、テューリングマシンが出る段でカチッとピースがはまるというか。それまで高尚な学問としてのイメージが強かった分野が一気に実用的なものに転換した瞬間を垣間みるようで。


    歴史を俯瞰して現代までの流れを追っていくというような構成の本。”フェルマーの最終定理”とか書いてるサイモンシン先生の著作が好きな人とかは結構イケるんじゃないかなと。



    …とこんな感じの本ではあるんだけど、個人的にはラムダ計算のあたりが全然理解できなかったのがすごく悔しかった。そろそろ新しいプログラミング言語でも勉強しようかなと思ってたので、これを機にHaskellかScalaあたりを覚えるべきか。

    ストップウォッチアプリ “TaskProfiler”

    趣味でちょこちょこプログラミングしてるけど作業時間の見積もりが甘すぎるのが目下の課題。

    そんなこんなで精度向上のため、作業時間の計測でもしてみようかと思い立ち、Windowsで使えるストップウォッチアプリを物色してみたんだけど良い感じのものが見つからなかった。

    「見つからなかったら自作してしまえ!」ということで、PythonとQtの勉強兼ねてストップウォッチアプリを作ってみた。

    要求仕様としては
    ・複数個のストップウォッチを同時に制御できること
    ・ストップウォッチの状態を保存できること
    ・ストップウォッチの状態をCSVファイルに出力できること

    外観はこんな感じ↓(スクリーンショットが貧弱すぎる…)

    で、とりあえずひと通り欲しい機能が実装できたのでgithubに上げてみた
    一応exeファイルもdistフォルダ内に入ってるので、Windowsならpythonインストールしてなくても動く…かもしれない。

    早速使ってるけどわりと良い感じの使用感(自分のためだけに作ったので当たり前だけど)。
    使いながら少しづつブラッシュアップしていきたいなー。