Qtのススメ! リンクを取得 Facebook Twitter Pinterest メール 他のアプリ 5月 22, 2019 これまで何個も当ブログではQt関連の記事を書いていますが、何故Qtに拘るのかを今回は記事にして行きたいと思います。 そもそもQtとは各プラットフォーム対応のFrameworkで、主にGUIを手軽に利用出来るのが強みです。また、GUIに限らずデータ処理、グラフィック処理、ネットワーク関係のプログラムをこのFrameworkは対応しており、各プラットフォームの対応した出力をする事が出来ます。 ### 対応プラットフォーム |タイプ| OS | |:-|:-| |デスクトップ|Windows, Mac OS, Ubuntu| |タブレット|Windows, Android, iOS(iPad)| |モバイル|Android, iOS(iPhone)| よく聞く・目にする端末は大体Qtが使えると言うのが強みです。 ## Qtの強み1 Qt自体は様々な言語に対応していますが、やはりメインと言えばC++です。 C/C++は移植性の低い言語で有名で、OSや端末ごとに違うソースを使うの主流でした。ただし、Qtは1種類のソースをプログラマーが記述する事でQtが移植性の問題を解決してくれます。 本来GUIプログラミングしWindowsでは`.NET Framework`を使い、Mac OSでは`Cocoa Framework`を使います。またWindowsの場合Framework自体はC++対応ですが、Mac OSのCocoaはObjective-CまたはSwift等の言語を使う必要があります。 Qtではプラットフォーム毎に最適なネイティブフレームワークを呼び出しGUIアプリケーションを作る事が出来ます。 ## Qtの強み2 個人的に結構簡単にGUIを直ぐに利用出来るのは一番の強みだと思います。 ``` QWidget *window = new QWidget; window->show(); ``` たったこれだけの記述でウィンドウを作成する事が可能になります。 ## Qtの強み3 最初は混乱するかもしれませんが、ウィジェットの構造をザックリ理解出来れば基本的なGUIプログラミングが可能になります。 - Qt Application * QObject * QWidget * QPushButton * QLabel * QLayout * QHBoxLayout * QVBoxLayout * QLineEdit 一部ですが、ザックリこの様にオブジェクトが継承されて構成されてます。 QWidgetの派生クラスはQWidgetのメンバーを継承しているのでQWidgetのドキュメントをある程度見ていれば派生クラスの操作も容易です。 ## Qtの強み4 CSSが使えます。各QWidget・QWidget派生クラスにCSSを適応してオリジナリティ溢れるGUIを作る事が出来ます。 ``` QPushButton *button = new QPushButton; button->setStyleSheet("background-color: #2868CF;"); ``` この様にウィジェットに対して簡単にスタイルをつける事が出来ます。 また、一部CSS3も対応しており、角丸やグラデーション等も可能です。 上記の様に直接スタイルをウィジェットに反映してもいいですが、次の様にする事も可能です。 ``` QFile styleFile("://ui/ui_style.css"); styleFile.open(QFile::ReadOnly); QString css = QLatin1String(styleFile.readAll()); QWidget ui; ui.setStyleSheet(css); ui.show(); ``` 別途ui_style.cssファイルを用意して、各ウィジェットのスタイルを定義しておき、プログラムから読み込んでスタイルを渡す事も可能です。 親のQWidgetにスタイルを定義すると、子のウィジェットもスタイルを継承しますので、上記の様にして渡す事も可能です。 リンクを取得 Facebook Twitter Pinterest メール 他のアプリ コメント
ウェブアプリケーション用テンプレートを公開 10月 13, 2019 汎用性の高いウェブアプリケーション用HTMLテンプレートを配布します。 # 概要 <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuqJAp2XSDkkRhe7V9E5aHpJ0CN1P7P_NdD_MMjQVgmxsULE5Gzvc8cCpJN8ZXVs1hdhy0R5pCc5WD5d8H0fV31bbLbUfINnYuCZuR-GSVQ4NTqMXJ-H4Bxi_1OxAEb5k3chj2fWFRl3g/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2019-10-13+5.24.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuqJAp2XSDkkRhe7V9E5aHpJ0CN1P7P_NdD_MMjQVgmxsULE5Gzvc8cCpJN8ZXVs1hdhy0R5pCc5WD5d8H0fV31bbLbUfINnYuCZuR-GSVQ4NTqMXJ-H4Bxi_1OxAEb5k3chj2fWFRl3g/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2019-10-13+5 続きを読む
Qt ウィンドウのあれこれ 3月 03, 2019 Qtでウィンドウを作成するには主に2通りの方法があり、QMainWindowかQWidgetを使うかで別れます。 また、QWidgetを継承しているQtウィジェット類は`show()`メソッドによって個別のウィンドウとして表示されます。 ---- > ウィンドウの作成 > ウィンドウにタイトルを付ける > ウィンドウのサイズを設定する > > 絶対値で設定 > > リサイズ > > サイズの最大値を設定 > > サイズの最小値を設定 > > 最大値と最小値を兼用しよう > ウィンドウの見た目を変える ---- ## ウィンドウの作成 QWidgetでウィンドウ自体は簡単に作成出来ます。 `//Window`から2行でウィンドウの作成をしています。 ``` #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); //Window QWidget *window = new QWidget; window->show(); return a.exec(); } ``` QWidgetまたはQWidgetを継承しているオブジェクトは`show()`メソッドを実行する事でウィンドウの作成が出来ます。 この例では内容の無いウィンドウを表示しているので全ての設定はデフォルトになっています。 <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQtU4bLlUzdnIwB1PyCmPTXTh9ahdsNag5ptJvdWH-q64VN0UnqHIqEaS5elerFL2O_F8XgW3B81Ice1Wew7o_VM 続きを読む
Qt setWindowFlagsについて 3月 03, 2019 Qtでウィンドウを生成する際、一言にウィンドウと言ってもダイアログウィンドウやポップアップウィンドウ等様々なタイプがあります。 またその他ウィンドウとしての機能で様々なオプションがありますが、これらの設定をQWidgetの`setWindowFlags()`メソッドを利用して設定します。 ## setWindowFlags(Qt::WindowFlags Type) <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdUp9hWlfWlLwivDL1B75d2td0ferdgvbl7qcfP2uLQpbVt92LlNiNbeX86lv1Y7wnYDIR7bomAxHeATKvrkeuEowihaf4sxq2tXr06YCa1JrtIrT6JSL9Ai4AmzJAEaNxeFq_JTipjw/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2019-03-03+13.06.08.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdUp9hWlfWlLwivDL1B75d2td0ferdgvbl7qcfP2uLQpbVt92LlNiNbeX86lv1Y7wnYDIR7bomAxHeATKvrkeuEowihaf4sxq2tXr06YCa1JrtIrT6JSL9Ai4AmzJAEaNxeFq_JTipjw/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2019-03- 続きを読む
コメント
コメントを投稿