質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

413閲覧

C++ ウェジット

BeatStar

総合スコア4958

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2017/08/12 02:26

C++ ( 厳密には Better-C ) でやっています。 (趣味)

今までは Windows API で ガリガリ書いていたのですが、

PCを買い換えたのでこれを機に よりC++に近づけて? やっています。

今までは グローバルエリア(?) にクラス定義やら関数定義やらを書いていました。

これを機に namespace を設けて その中に定義するようにしました。

で、GUI部分 ( ウィンドウやコントロール ) 部分も Windows API で書くのはいいですが、

調べてみると ウェジット っていう GUI系のAPIを提供するライブラリがあるようですね。

それを使いたいのですが、どれがいいでしょうか?

「何がいいか」は人それぞれだと思いますが、以下の条件を満たすウェジットです。

条件1: MinGW で使えること ( MFC とかみたいな "VC++限定" とかは無しで。 MinGW で使えるもの。 ) 条件2: C++で組めること 条件3: 日本語が使えること ( std::wstring を使うとかでもいいですが、とにかく日本語表示できるもの ) 条件4: (ライブラリを)使えるようにするためのコンパイル が容易 (あるいはバイナリとして配布されている) であること 条件5: 無料であること 条件6: Windows API と一緒に使ってもOKであること ( この場合は Windowsのみになりますが。 ) 条件7: オプションとして。USBやPortableな外付けHDDに入れてそのまま使えること。( MinGW 等のような感じ ) ※ 少なくとも Windows上で動くこと。

私は VC++で組むのはいいですが、あまり好きではないです。

なので基本的に MinGW で組んで どうしても VC++で組まないといけない ( 組めても厳しいとか。 例えば Excel操作, IE操作等 ) 等の場合だけ

VC++で DLL化して MinGW で組んだ実行ファイルから呼び出す感じです。

ですので、MinGW で組めることが大前提です。

条件4は 自分でコンパイルするのはいいですが、makeファイルの使い方がわからないからか、

毎回失敗します。

( gnupack_basic っていうのも試してみましたがそれでも同じです... ターゲットがない云々で。 )

Boostのときは「MinGW Boost コンパイル」等で検索すると普通に出てきて、

バッチファイルの起動 -> コンパイルするための実行ファイル? が生成される

-> 生成された実行ファイルに「MinGWでコンパイルする」, 「リリースモードで生成する」等の情報をコマンドライン引数として渡す

-> 後は待つだけ...

という感じで出来たので、こういう風にmakeファイルを使わないようなコンパイル方法とか あるいはバイナリとして配布されているとか

の方がいいのですが...

条件1~6 を満たす C++ の ウェジット ( C言語でもいいですが、それだと あまり Windows API と変わらないかも? ) をお願い致します。

( 一応自分なりに調べてみましたが、よくわかりませんでした... )

[条件]
言語 : C++
コンパイラ: MinGW
条件: 上記の条件1~6を満たすこと

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

Qtはかなり条件を満たすと思います。

条件1: MinGW で使えること ( MFC とかみたいな "VC++限定" とかは無しで。 MinGW で使えるもの。 )

使えます。

条件2: C++で組めること

Qtのメイン言語はC++です。(MOCと言う一種のプリコンパイラで機能を拡張してますが、C++機能は全て使えます。)

条件3: 日本語が使えること ( std::wstring を使うとかでもいいですが、とにかく日本語表示できるもの )

QStringでできたと思います。

条件4: (ライブラリを)使えるようにするためのコンパイル が容易 (あるいはバイナリとして配布されている) であること

確かMinGW版のプリビルドもあったと思います。
ライブラリ自身のビルドはちょっとたいへんかも

条件5: 無料であること

LGPLでの再配布までは無料で使えます。商用ライセンスもありますが高いです。

条件6: Windows API と一緒に使ってもOKであること ( この場合は Windowsのみになりますが。 )

問題なさそうです。

条件7: オプションとして。USBやPortableな外付けHDDに入れてそのまま使えること。( MinGW 等のような感じ )

これはやったことないですが、linux発のツールなのでレジストリは使っていないかも。その場合はポータブルな筈です。

他にメジャーな無料GUIフレームワークとしてwxWidgetsもありますが、あまり更新されていない点や日本語情報が少ない部分が気になります。

私は VC++で組むのはいいですが、あまり好きではないです。

気持ちは分かるんですが、MinGWと比べるとVC++の方が実用性は高いかも。
C++の文法を学ぶのであれば、llvm/clangと言う選択肢もあると思います。コンパイルが早くてエラー・メッセージが丁寧と評判です。

投稿2017/08/12 02:57

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2017/08/12 03:23

Chironianさん、ご回答ありがとうございます。 済みませんが、MinGW用のプリコンパイルド ( pre-compiled ) の方はどこにあるのでしょうか? 回答をいただいた後に「Qt プリビルド MinGW」のように検索してみましたが、 コンパイル方法しか載せていないのが多いようです。
BeatStar

2018/01/17 01:51

追加質問ですみません。 上記のURL先のQtってどのライセンスなんでしょうか。 ( 私がやるべきこと(ソースコードの開示等) はあるのでしょうか? )
guest

0

C++でGUIをやりたいということでしょうか・・・?VSでもmingwでもコンパイルできるものを上げてみると

  • Qt5: 情報も多いがbinaryがでかい、バグ踏みやすい、純粋なC++ではない、Nokia死にそうで将来性に不安
  • ImGUI: 去年流行った。純粋なC++、Qtについで人気
  • Nana: マイナーだけど頑張っている、C++11時代を強く意識している、独特のViewGrid
  • FLTK: 見た目が破滅的にダサいのどうにかならないのか、VSでビルド難しい
  • Ultimate++: 圧倒的マクロ。これマクロゲーだ。
  • wxWidget: ビルドできたら天才かもしれない
  • GTK+: 過去の遺産、滅びろ

類似の質問

まあC++で、となると決定打が無い。C#でGUI書いて、具体的な実装はC++で、とするのが平和なんじゃなかろうか・・・。


ビルドについてですが、まあQtとかいう孤高の何かはおいておき、最近はcmakeを使うことが多いです。vcxproj,GNUmake,ninja,etc..を生成するpremakeツールです。cmake勉強するとビルドスキルが上がると思います。

投稿2017/08/12 03:01

編集2017/08/12 03:07
yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問