• ベストアンサー

MFCやQtの参考書について

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

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

とりあえずQtに関して。 お勧めも何も数えるほどしか出ていないので、新しいところを挙げておしまいという気がします。 C++ Gui Programming With Qt 3 http://www.amazon.co.jp/dp/0131240722 C++ GUI Programming With Qt 4 http://www.amazon.co.jp/dp/0131872494/ 今からならQt3はないと思いますがねんのため。 日本語で読める本でQt4のものはなかったような?

関連するQ&A

  • qt3とqt4

    初めて書かせていただきます。 QtでのGUIアプリケーション作成をしてみたく 先日、入門Qt4プログラミングという本を購入しまして、 CentOSにQt4をインストールをし、試しに簡単なものを 作ろうかと思い購入した書籍の最初のプログラムをmake してみたところ hl.cpp:1:24: error: QApplication: No such file or dir hl.cpp:2:24: error: QPushButton: No such file or dire ・ ・ ・ のようなエラーが出てきました。 原因は最初にCentOS5をインストールしたときに一緒に入れた Qt3だと思い、Qt3をアンインストールしようと思ったのですが、 他のアプリケーションと使用しているため依存しているので同時にアプリケーションも削除される状況に陥りなかなか先に進めないでいます。 Qt3を残しつつ、makeするときはQt4を使用する様に設定するには どうしたらよいでしょうか? 初歩的な問題だとは思いますがよろしくお願いします。

  • Qtライブラリを静的にリンクしたい

    Qt 5.11.0 を使ってGUIアプリをつくろうとしているのですが、実行時の問題があります。 ソースは初心者用のサンプルソースコードで、Qt Creator を使って以下の「main.cpp」を作成しました。 #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } ウインドウ生成は「mainwindow.cpp」で、 #include "mainwindow.h" #include <Qtgui> #include <QtWidgets> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QLabel *label = new QLabel(tr("Hello World.")); setCentralWidget(label); } MainWindow::~MainWindow() { } となっています。 これをビルドして、Qt Creatorから実行するとウィンドウが表示されます。 しかし、単独で(ダブルクリックで)実行しようとすると 「コンピューターにQt5Cored.dllがないため、プログラムを開始できません。・・・」 というシステムエラーが表示され、実行できません。 これ以外に、mingwとmake を使って別のサンプルソースをコンパイルしても同様のエラーが出てきます。 実行ファイルと同じディレクトリにQt5Widgets.dll、Qt5Core.dll、Qt5Gui.dllの3つのDLLをコピーすると、実行できます。 しかし、いちいちDLLを要請するプログラム構成は好きでないのと、同名のライブラリlibQt5Widgets.a、libQt5Core.a、libQt5Gui.aがあることから、できれば静的にリンクしたいと思っています。 静的にリンクするために以下の4つの方法を試してみましたが、ことごとく失敗しています。 方法1 ライブラリを指定してリンク g++ -static -O0 -g -o Qt_test.exe Qt_test.obj -lmingw32 -LC:\Qt\5.11.0\mingw53_32\lib -lQt5Widgets -lQt5Core -lQt5Gui -lqtmain -LC:\utils\my_sql\my_sql\lib -LC:\utils\postgresql\pgsql\lib -lshell32 のような書式で、3つのライブラリの順番を入れかえて6パターン試しましたが、DLLエラーは変わりません。 方法2 ライブラリをld.exeでまとめたオブジェクトファイルを作ってリンク 「GNUソフトウェアプログラミング」という本の112ページにリンカ「ld」のオプションについての記述があり、オブジェクトファイルとライブラリ同士をリンクする方法が紹介されていたので試してみましたが、未解決の参照がない?のか、20バイトのファイルが出力されただけでした。 ld -static -r -o qtobj.o C:\Qt\5.11.0\mingw53_32\lib\libQt5Gui.a C:\Qt\5.11.0\mingw53_32\lib\libQt5Widgets.a C:\Qt\5.11.0\mingw53_32\lib\libQt5Core.a ld -static -r -o qtobj.o -LC:\Qt\5.11.0\mingw53_32\lib -lQt5Gui -lQt5Widgets -lQt5Core 方法3 arでオブジェクトファイルを作る ar rs qto2.a C:\Qt\5.11.0\mingw53_32\lib\libQt5Gui.a C:\Qt\5.11.0\mingw53_32\lib\libQt5Widgets.a C:\Qt\5.11.0\mingw53_32\lib\libQt5Core.a でライブラリをまとめたファイルは作れるのですが、コンパイルするとリンク時に qto2.a: error adding symbols: Archive has no index; run ranlib to add one となり、うまくいきません。 方法4 Qt creator で静的リンク Qt Creatorで「ライブラリの追加」を行うと、「HelloWrold.pro」に以下の行が加わり、リンクできそうなのですが、実行時にやはりDLLを要求されます。 LIBS += -LC:/Qt/5.11.0/mingw53_32/lib/ -lQt5Core 結局は、Qtで静的なリンクを行う方法が知りたいのです。 ご助言をお願いいたします。 環境は、Win7、Mingw、QtはMingwパッケージオプションを付けてインストールしており、 「C:\Qt\5.11.0\mingw53_32\lib\libQt5Core.a」 「C:\Qt\5.11.0\mingw53_32\include」 「C:\Qt\5.11.0\mingw53_32\bin\Qt5Core.dll」 があり、中にDLLもライブラリもあります。 よろしくお願いします。

  • QtでMakeがうまくいかない

    Qtの本を買ったので勉強しようと思い、サンプルを作ってみたのですがMakeがうまくいきません。 エラーメッセージを見る限りはリンカがおかしいみたいなのですが… 状況と環境を記載しますので問題点があればどなたかご教授お願いいたします。 なお、情報が足りなければ随時出していきますので何卒お願いいたします 【環境】 OS:Ubuntu7.04 ライブラリ:qt-x11-free3.2.1 コンパイラ:gcc(バージョンが沢山出てわかりませんが最新は4.1のよう) 【手順(インストール~Make)】 (1)tar.gzだったライブラリを/usr/localに展開 (2)環境設定のために「.profile」に以下を追加  QTDIR=/usr/local/qt-x11-free3.2.1  PATH=$QTDIR/bin:$PATH  MANPATH=$QTDIR/doc/man:$MANPATH  LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  export QTDIR PATH MANPATH LD_LIBRARY_PATH  ※設定後LD_LIBRARY_PATHだけechoでも確認できませんでした (3)ライブラリのMakeのためにqt-x11-free3.2.1ディレクトリ内の「configure」を実行 (4)適当に空のディレクトリにサンプルを作る。 (5)コマンド「qmake -project」を実行 (6)コマンド「qmake」を実行 (7)(6)によって作成されたMakeFileを実行 【状況】 コンパイルでエラーとなり以下が出力されます。 /usr/bin/ld: cannot find -lqt collect2: ldはステータス1で終了しました。 make: ***[Qt]エラー1

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

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

  • GPLについて

    GPLについてよく分からないので、質問させてください。 QTというGUIフレームワークがありますが、このライブラリのオープンソース版のライセンスはGPLになっています。 このQTのオープンソース版をライブラリとして使用して作ったソフトウェアは、配布する際そのソフトウェアの全てのソースコードを公開しなければいけないのでしょうか?? どなたかご教示頂けると幸いです。

  • プログラミング関連の書籍の発売予定を知りたい。

    プログラミング関連の書籍(洋書含む)で発売する予定があるものを知りたいのですが、なにかいい方法はないでしょうか?? 例えば、GUIフレームワークであるQTに関する書籍で、今から3ヶ月以内に発売の予定があるものについて(発売の予定があるものがあるかどうか)~みたいな感じです。 Amazonで検索したときに出てくる本のリストは、現時点で判明している発売予定の書籍すべても含まれているのでしょうか? なにかいい方法がありましたら教えていただけると幸いです。

  • 「MFCを使用しない」から「MFCのスタティックライブラリを使用」

    VC++初心者ですが、 Win32Applicationで「MFCを使用しない」で作成したプログラムが正常動作しました。 そこで 「MFCを使用しない」から「MFCのスタティックライブラリを使用」にしてビルドしたところ、リンク中に どんどんエラーがでます。 関数関係のエラーなのですが。 (1) どうすればエラーを無くせるのでしょうか (2) 「MFCのスタティックライブラリを使用」にするとどの様なメリットがあるのか(説明している参考URLなど)。 教えて下さい

  • QT5.3.2 複数のダイアログ表示について

    QT5.3.2 複数のダイアログ表示について質問がります まず自分の現在の環境は、 OSがLinuxのDebian 開発環境:QT5.3.2 で開発しています。最近仕事で始めるようになり ちょっと大きな壁に行き詰っていたので質問いたしました ・QT Disignerで複数のフォームを作成いたしました。仮にメインのフォームをA、サブ1のフォーム」  をB、サブ2のフォームをCとおきます メインのフォームの上半分を何もボタンなどおいておらず隙間を開けています そこで質問ですが、そこにフォームBやフォームCを表示・非表示したいと考えていますが どのようにおこなったらよいのかわかりませんよろしくお願いします ちなみに、VS2010 C++ MFCではフレームを置き、そこでダイアログの入れ替えを行っていた記憶がありますが、今回はどのようにしたらメインのフォームの上半分にほかで作成したフォームを表示するのかわかりません。 以上よろしくお願いします。  

  • linuxではどうやってguiを作るのか?

    windowsならvisual studioを使えばguiを作れます。フォームデザイナーというものがついてきますので。 linuxの場合はwxpythonやqt,electronなどの選択肢があると思います。 openglで3d描写したいのですが、これらのguiライブラリがネックになることはあるんでしょうか?

  • QT利用時に”データハンドラが見つかりませんでした”というエラーが・・・

    はじめて書かせていただきます。 質問なのですが、 QTで、MOVやMPEGなど通常見れる(昔見れた)ムービ-を開こうとすると、どのファイルでも ”このムービーに必要なデータハンドラが見つかりませんでした。” となってしまいます。 QT4をアンインストールして、再インストールしても同じです。 なお、アンインストールをする際、 ”いくつかのファイルは別のソフトで作成したため削除できませんでした” というメッセージが出ます。 手作業で、視認できるQT関連ファイル全てを消して、 再インストールでもだめでした。 また、PLAY COOL IT!というソフトを使ってみても、同じエラーが出ます。 いやなことに、HP上のストリーミングはたまに再生されることがあります。 が、一度エラーが始まると、先ほど見れたファイルも見れなくなります。 ここまでくると、意地です。 どうか、お願いします。

    • 締切済み
    • Mac

専門家に質問してみよう