• ベストアンサー

MFC以外のGUI ライブラリの日本での評判

MFCがかなり使われいることは知っているのですが、今は数々のオープンソース系GUIライブラリもありますし、スクリプト言語のバインディングもできていますよね。例えば私が触ったことのあるもので言うと、Gtk+、Qt、wxWidgets、Swing、Tk、WindowsFormsなどです。それぞれ英語ベースのコミュニティ・サイトみたいなものはあるのですが、日本での評判がどうなのかよくわかりません。 そこで、皆様の体験(どのライブラリをどの言語で使ったかなど)や使ってみて良かった点、悪かった点などをお聞かせください。

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.2

日本の場合、権威主義というか「無難な多数派」を選択することが多いので、 あえてオープンソースの(Windows用)GUIライブラリを選択するような開発はそうないのでしょう。 # MFCも一応GUIライブラリ的な性質は持ってますね。 # 透過的というか、きちんと閉じてない/完結してないので、 # Win32と組み合わせて使わないとまともに使えませんけど…。 GTKはGnomeが幅を利かせているLinux界隈では使われてます。 KDE派のところはQt使ってるでしょう。結局「無難な多数派」です。 wxは一時期ちょっと話題になった気はしますが (ちょうど、Borland C++ Builder Xにバンドルされることになった頃?) あまり定着しなかった印象です。(「無難な多数派」じゃないせいでしょうか…) SwingというかJavaのGUI自体があまり人気がない気がしますが、 JavaでGUIを書くならやはり選択肢はSwingか、SWTあたりになるでしょう。 どちらになるかは、原理主義(Sun派)ならSwing、実利主義(IBM派)ならSWTなのか…? 私自身は、LinuxだとGTK+をメインに、Otをかじったり、MicroWindowsとかも使ったことが。 Windowsでは、Win32直叩きからMFC,OWL(Object Windows Library)、wx、WideStudioあたりはいじってます。 JavaはAppletとSWTはかじったことがありますが、 Swingはユーザとして嫌いなのでJavaの本で眺めたことがある程度(使ってみる気もおきず) 後は、PythonでTkとか。TkはPerlやRuby等からも使えるらしいので、 (PerlやRubyはあまり詳しくない)ぼちぼちなんじゃないでしょうか。 WTLなんてのもありますね。 極論、きちんと動いてメンテされてれば、どれでもいいんですけど。 マルチプラットフォームでコード書く身からすると、どれも微妙に痛し痒しというか…。 全ての環境である程度の互換性があって、でもOSのネイティブコントロールをちゃんと使ってて、 ライセンスがクリアで無償で使えて性能が出て…今のところ決定版には出会えてません。 結局各環境で無難な選択+ロジックからの切り出しという定番になってます。 # 仕事だと、説得が面倒なので標準バンドルものになるってだけかもしれませんが。

putra0
質問者

お礼

ありがとうございます。大変参考になりました。 私の場合、TkはTclから使っています。Linuxでの見栄えがもうちょっと良くなって(Gnome/KDEのスタイルを真似る+アンチエイリアス・フォントへの対応)くれればありがたいのですが…。 クロスプラットホーム性をあきらめれば(Monoとかがあるにはありますが…)、C#+Windows Formsも悪くないなと思っていたのですが、VistaとともにXMLベースのWPFが出てきてしまったので、これからじっくりWindows Formsを勉強しても無駄になるのではないかとちょっと悩んでいるところです。

その他の回答 (1)

  • noro6677
  • ベストアンサー率21% (34/158)
回答No.1

簡単な説明で厳密には違うけどMFCってGUIライブラリではなくて Win32APIを直接叩かなくていいようにするためのクラス群です。 比較対象が違います。 MFCをGUIライブラリと言うことは 今風(?)に言うと.NET FrameworkをGUIライブラリといっている様な物です。

putra0
質問者

お礼

ご指摘ありがとうございます。 包括的に何と言ったらいいかよくわかりませんが、Win32API や X Window System のラッパーだとか独自の描画機能を使っているツールキットだとか、とにかくGUIプログラミングを作るためのクラス群としてお考えください。

関連するQ&A

  • MFCやQtの参考書について

    自作のGUIライブラリを作成しているですが、 GUIについて解説してある書物が少なくて困っています。 例えば、MFCやQt等のGUIライブラリ関連の書物で、 お勧めがあれば御教授頂ければ幸いです。 洋書でも構いません。

  • 【GUI】MFCからC#への移行についての必要性

    今まで主にMFCを用いたコーディングをしていたのですが GUIをMFCからC#に移行する作業を検討しています。 そこでCoreとなるソースはC++にしておきたいので 「MFC ダイアログベース」 から 「C++ DLL」に移植を考えてます。 その為、今テストとしていくつかのソースコードをDLL化してみましたが MFCのAPIによるエラーが非常に多く作業量が膨らむばかりです。 ここで質問ですが、このような作業は将来的にメリットを生み出す事かどうか 個人差があるかとおもいますが皆様からのご意見頂けないでしょうか? 私の方で気づいたメリットは以下の点だけで、作業に価値があるか少しずつ疑問になってます・・・。 ・WPFなどを使える事からGUI周りのレベルが上がる ・今後、C#による需要が多くなると見込んでいるため。 作業量が多く挫折しそうです。。。

  • Windows環境下でのGUI作成法

    とある大学生の者です. 現在,FPGAとPCの制御通信をおこなうGUIで作りたいと考えております. しかし,GUIはいままで先輩に少ししか習ったことがなく,ほとんど分かりません. なので,この場をお借りして質問させていただきました. Windows環境下で実行でき,Visual Studio2008 or 2010で作成できるGUI作成法でオススメは何でしょうか? 考慮すべき点としては ・FPGAとの通信にはメーカーのライブラリをインクルードしており,先代のGUIを見る限りVisualC++ によるMFC ・ライブラリは新しいものでないので,C#で動かないかもしれない ・私のプログラム経験はVisual Studio 2008下でC,C++をつかってロボットを動かすレベル などです. 個人的には,C#のFormによるGUIの作成経験があり簡単そうだった記憶があるので,そうしようかと思ってるのですが,ライブラリが対応していない可能性があり,ちょっと… DLL化してもいいのですが,デバックに時間がかかるので避けたい あと,別件になりますがOpenCVによる画像処理環境もGUI化したいという構想があり,C++のほうがよいのかと思ってます. ぐだぐだと長くなってしまい申し訳ないです. ご回答,よろしくお願い致します.

  • マルチプラットフォームで動き、データ保存を行うことができるGUIアプリを作るには、現在どのような選択肢がありますか?

    いつもお世話になっています。 アウトラインエディタのようなものを作ってみようと思っています。 いろいろ考えたのですが、疑問点が多々あり、アドバイスをいただけたら幸いです。 また、プラットフォームに依存したくないので、VCやDelphiは避けたいです。 アプリ概要 左にディレクトリペインがあり、右にメモやTODOなどを書いて保存できるアウトラインプロセッサ。(既存のWindowsアプリですと、nami2000のようなものを作りたいです) [nami2000のHP] http://www.geocities.jp/my_ultraseven/mozart/_start.htm 案1 ・Webブラウザを画面としたアプリにする ネック ・Windows依存にはしたくないのでVBScriptやJScriptは使わない。JavaScriptで書くことになるかと思いますが、JavaScriptではファイル入出力はセキュリティ上サポートされていないので、別途Webサーバを立て、CGI経由でDBに保存するか、XMLテキストなどに保存する必要がある。Ajaxを使ったとしても、Webサーバが必要。単なるアイデア整理、日記、購入書籍整理、通院記録整理といった目的に使うアプリ程度にWebサーバを立てる必要が生じるのは大げさなのではないか。。いや、大げさだろう・・・。。 案2 ・C/C++を用いてGUIアプリ開発を行う。 ネック(&疑問点) ・C/C++でGUIアプリを作るには、(VC等を除くと)QtとOpenGLがあるようです。 Qtは非商用利用ではGPLなのですが、もしQtを使用してGUIアプリを開発しフリーソフトとして公開することになった場合、当然アプリのソースコードをすべて公開する必要があるのでしょうか?(wikipediaによるとGPLライセンス準拠なら公開するべきとされているようですがはっきりわかりませんでした) OpenGLはxDグラフィックスインターフェイスなので、いわゆるGUIアプリと聞いてイメージするような、メニューバーがあり、ウィンドウ領域があり・・・といったアプリ開発には向いていないのでしょうか? ・案3 Java - Swingを使って開発する。 いちばん現実的な選択肢のような気がします。。 ・案4 Firefoxなどのアドオンのように、コアはC++で記述し、XULを用いてユーザーインターフェイス部分の開発をする。 いろいろと調べたのですが、結局よくわからないままです。。難しい・・・。 その他、言語やライブラリ、フレームワークなどでアイデア・アドバイスがありましたらぜひお教えください。 個人的にはブラウザベースのアプリにしたい気持ちがあるのですが、Webサーバが必要になるのがネックです。ブラウザ画面で入力したデータをWebサーバを必要とせずにそのままローカルに保存・参照できるような機能を持つ言語はないみたいですね。XULならできるようですがよくわかりません。。 C/C++でマルチプラットフォームのGUIアプリ開発環境があればそれが一番いいと思っていますが、見つかりません。(ないなら作ればいい、というのがエンジニア魂なのでしょうが、そこまでのスキルがありません。。) また、フリーソフトとして公開するときにソースコードを公開するのは抵抗があります。 マルチプラットフォームで動き、データ保存を行うことができるGUIアプリを作るには、現在どのような選択肢があるのか、アドバイスいただけたら幸いです。 私自身も整理できていないので、わかりにくくてすみません。。 要はアウトラインプロセッサを作りたいのですが、画面をブラウザにするとWebサーバが必要になってしまい大げさ、C/C++で作るとQtなどが必要になり、ソースコード公開しなければならなくなる?(というよりも、GPLライセンスの下に他人による改変を認めてしまう)のでそれは避けたい。 XULで作る場合、Firefoxなどのアドオン化できるのは魅力だけれど、結局はjarファイルなのでソースコードそのままだしてるのと同じ、その前に概念が難しいのでよくわからない。。 JavaはGUI開発はまだまだ発展途上とのことなのでJavaにするのもどうなのか。。 混乱してます。。。

  • VB.NETとVC.NET(MFC)で互換のXMLパーサ

    WinXP Embbeded上で動作する一種の制御ソフトを 開発しないといけないのですが、 本体制御ソフトをVCで、ユーザIF(GUI)をVBで作ることにしています。 パラメータ等の設定をGUIと本体ソフトで遣り取りしないといけません。 VBソフトとVCソフトのそれぞれに互換のシリアライザ の様なものを実装して、共通のファイルを互いに 読み書きすることを考えています。 GUIは極力標準的かつ平凡なソフトにしたいので .NET Framework以外のライブラリを使うのは避け、XmlSerializerあたりを使うと良いのかと思いますが、VC(MFC)はXmlSerializerが吐き出したXMLファイルを 読めるパーサは何を選べば良いのでしょうか? XMLに拘っている訳ではないのですが、言語に 依存しない最も普遍的な方法ではないかと思っています。 XML以外で良い方法があればそれも良しです。

    • ベストアンサー
    • XML
  • Linuxでc言語を学習したいのですが!

      Linuxでc言語を学習したいのですが、色々調べてみても、GUIでの操作ができるという、”Gtk”が候補に挙がっていました。  因みに、LinuxはRed Hat8~Fedora Core3まで使用して、ネットワークサーバーを組んでいます。しかし、GUIで動かしてみると、CPUがCeleron-1.2GHzでも 重いです。  Linuxでc言語を始めようと、考えているのは、組み込みLinuxを選択したいからです。osのカーネルの部分を組み替えるには、c言語が必要だと思ったのです。  まずは、c言語かなと、考えて、windowsでも出来る CPad for Borland C++Compilerを導入して、少しだけ、学習を始めました。このまま、windowsペースのcの学習では、Linuxでのc言語に入れないと考え始めたのです。  他のものもあると思いますが、Linuxでのviエディターベースでcが出来る方法は、何でしょうか?  デストリビュウションに付属のコンパイラーは使ったことも、使い方もしりませんが、lanレベル3の状態でこれらを呼び出すにはどうすればいいのでしょうか? 以上のことについてお伺いします。  1、Linux用のcコンパイラーできれば、デガッパもついてるものはありませんか?別々のはありますが!  2、vi エディターベースで出来ませんか?sshでやれれば一番やりやすいのですが?  3、デストリビュウションに付属のコンパイラーのテキストペースでの使用方法  4、tarペースのインストール方法が良く分かりません。1、の新たなコンパイラーのインストールにrpmであれば助かります。もしtarペースのインストールにつて必要ならば、教えてください。あつかましいですが。 以上4つに、ついてお願いします。

  • プログラム言語の選択基準

    こんばんは。 私は現在、社内の小規模な在庫管理システムを作成しようと考えています。 その為に、どのプログラミング言語を使用するか悩んでいます。 以前ソフトウェア会社で働いていたときは、ただ漠然と提示されたプログラミング言語でプログラムを作成していたため、なぜこの言語で開発するのか? という点が理解できていませんでした。 そこで今回在庫管理システムを作るにあたり、みなさんはソフトを作成する際、どういった基準でプログラミング言語を選択しているかを知りたいと思いました。 一般的、個人的など、どういった基準でも構いません。 ちなみに私は今回、漠然ではありますがJAVAでSwingを使用し、GUIアプリケーションとして作成しようと考えています(よく分かっていない点もあるため、変な事を言っていたらごめんなさい)

  • Javaの現状について教えてください

    こんにちは。普段主にC++を使っていて、趣味と実益を兼ねて少しずつJavaを勉強してきた者です。 時間に少し余裕ができてきたのでテキスト整形ソフトをJavaで作ってみようと思っているのですが、基本的なところでいくつか疑問があります。 ご教授いただければ幸いです。 1・現在日本ではJavaは主にサーブレット開発で使われており、アプリケーションソフトに使われることはあまりないそうですが、それは実際そうですか? また、やはり速度面からいって今後もそのような状況が続きそうですか? Javaでアプリケーションを作ることはあまり意味がないことでしょうか。 2・JavaのGUI用のクラスライブラリにはSwing(JFC)と、マイクロソフトが開発したVJ用のクラスライブラリ(名前を忘れました)があるようですが、(あえて使うならば)これらはどちらが主に使われているのでしょうか? またVJはすでに製造中止?になっているそうなのでMSのクラスライブラリは覚えても無駄でしょう? 3・VJで本に載っていた(「Java実例プログラムによるデザインパターン入門」)JFCのクラスを使おうとしたのですが、どうもインストールされていないようです。VJでSwingを使うにはどうしたらいいでしょうか? 以上、とりあえず気になっている点をあげてみました。 他にもお気づきの点があればぜひご指摘下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 軽量言語の「軽量」は何?

    2点疑問があります。 軽量言語(LL:Lightweight Language) または軽量スクリプト言語 といった単語を最近よく見かけます。 RubyやPythonなどが属するものと思うのですが、 上記の単語中の「軽量」とは何が軽量なのでしょうか?・・・(1) パッと思いつくのは、 -動作が軽い? -使用者の負担が軽い?(ライブラリが豊富であるため) ぐらいです。 軽量があるくらいだから、逆の重量言語とかあったりする のでしょうか?・・・(2)

  • PEARライブラリで携帯サイト開発

    はじめまして PHP初心者でjavaを多少かじった程度のものです 現在、携帯サイトを作成しております 質問点はPEAR::Net_UserAgent_Mobileに関してです このライブラリ内のMobile.phpをrequireしたいのですが、なんど試してもうまくいきません。 コマンドからインストールして利用した場合はうまく動くのですが 直接、ライブラリをダウンロードして作業フォルダに格納して使おうと思うと 真っ白画面が。。。 記述 コマンドインストール実行の場合   require_once('Net/UserAgent/Mobile.php'); 手動で設置した場合   require_once(dirname(__FILE__).'/../lib/Net/UserAgent/Mobile.php')); です。 フォルダ構成は, htdocs┐      ─scriptフォルダ─hoge.php(ここでrequireを記述しています)      ─libフォルダ┐              Netフォルダ┐                     UserAgentフォルダ─Mobile.php となっています 何が対応方法はもちろん、参考URL、気になったところなんでも結構です。 OS  UNIX 言語 PHP,HTML よろしくお願いします                                 

    • 締切済み
    • PHP

専門家に質問してみよう