Qt Blog

508
Posts

629
Comments

バグレポートやフォーラム経由でのコードコントリビューションについて

Published Saturday September 8th, 2018 | Leave a comment
Posted in Qt Project | Tags: , ,

ソースコードのコントリビューションが、バグレポートやフォーラムといった Qt のシステムからも可能になりました。これまでは、Qt Project に対するすべてのコードのコントリビューションは Contribution License Agreement(CLA) にて管理されていて、商用ライセンスをお持ちの方には The Qt Company が Qt に対して行うバグフィックスや些細な変更が例外的に直接提供されていました。今回、Qt Account の利用規約 を更新し、Qt のシステム経由でのソースコードのコントリビューションが可能だということを明記いたしました。 コントリビューションのガイドライン のとおり、 Qt Project に対するソースコードのコントリビューションの一番の推奨方法は依然として CLA になります。しかし、CLA にサインしていないユーザーが(例えば、 Qt のバグを修正する)パッチを持っているということも時々あります。今後は、こういったものの提供がバグレポート や フォーラム といった Qt のシステムを経由することで可能になります。 こういった「カジュアルなコントリビューション」が行われた場合、The Qt Company が、そのソースコードをピックアップし、その修正を Qt に取り込むための必要な手続きを行うことになります。つまり、そういったコードがそのまま自動的に Qt に取り込まれるわけではなく、Qt のリポジトリのソースコードの質を保つための通常のコントリビューションのプロセスをちゃんと踏むことになります。 以前の Qt Account やその他の Qt のシステムの利用規約でも The Qt Comopany が登録ユーザーからのコンテンツを公開することに対する十分な権利を提供していました。しかし、そのバージョンでは、そこにソースコードも含まれるということが明記されていなかったため、それを今回明確化いたしました。そして、これを厳密に実施すべく、現時点以降に貢献されたソースコードのみを対象にいたします。ということで、以前に Qt のシステムにパッチを送られた方は、お手数ですが再度提供していただければと思います。 […]

Read More

Qt 5.11 の OPC UA 対応

Published Saturday September 8th, 2018 | Leave a comment
Posted in Qt for Automation | Tags: ,

この記事は The Qt Blog の OPC UA support in Qt 5.11 を翻訳したものです。 執筆: Frank Meerkötter, 2018年05月16日 OPC UA はインダストリー 4.0 の中心となる要素で IT と産業製品のシステムのシームレスなコミュニケーションを提供します。Qt の OPC UA 対応は簡単に使える OPC UA 用の Qt の API を提供することを目的に basysKom が 2015 年に開始したものです。2017 年には The Qt Company も協力し、テクノロジープレビューが完成しました。五月下旬にリリースされる Qt 5.11 で利用可能になる予定です。 Qt OPC UA の目標は、HMI やアプリケーション開発におけるクライアント側の実装を簡単にするというものです。テクノロジープレビュー版では OPC UA スタンダードのサブセットの実装を行いました。これにより、サーバーへ接続し、属性の読み書き、サーバー側のメソッドの実行、データの変更のモニタリングやノードの監視などが可能になりました。すべての機能は非同期な API […]

Read More

QML と Qt for Python の連携

Published Saturday September 8th, 2018 | Leave a comment
Posted in Qt for Python | Tags: , ,

この記事は The Qt Blog の QML and Qt for Python interaction を翻訳したものです。 執筆: Friedemann Kleint, 2018年05月14日 QtWidgets というデスクトップのアプリケーション向けの UI 技術に加え、Qt は QML という UI 技術も提供しています。 今回は、Qt for Python で QML をどう使うのかを、declarative/extending/chapter3-bindings を基に大まかに説明をしたいと思います。 まず初めに、.qml ファイルをロードするための基本的な型を見てみましょう。QGuiApplication と QQuickView のインスタンスを生成します。 QML のエレメントがビューのサイズに追従するよう、resizeMode プロパティに SizeRootObjectToView を設定します。 app = QGuiApplication(sys.argv) view = QQuickView() view.setResizeMode(QQuickView.SizeRootObjectToView) その後、ビューの setSource メソッドを使用して QML のロードを行います。 QML […]

Read More

Qt for Automation の連載について

Published Saturday September 8th, 2018 | Leave a comment
Posted in Qt for Automation

この記事は The Qt Blog の Qt for Automation Blog Series を翻訳したものです。 執筆: Lars König, 2018年05月09日 みなさんこんにちは! 産業界や、インフラ分野において将来的に自動化がより進むのはもはや公然の事実でしょう。ユビキタスなデジタルトランスフォーメーションや、インダストリー4.0のもと行われた標準化、今後期待される産業 IoT 技術が主なトレンドです。余談:もしこういったトレンドの詳細を学びたい方向けに2つの電子書籍を用意しています。一つは 技術的な側面 からのもので、もう一つは ビジネス的な側面 にフォーカスしたものです。どちらも リソースページ から無料で入手していただけます。 新たなビジネスを開拓する道程で、こういった疑問を抱くかもしれません。活用事例はあるのか?マーケットは受け入れる用意があるのか?製品のマネタイズをどうすべきか?そもそも技術的に実現可能か? 最後の疑問が後付けのように聞こえる方は、遅かれ早かれ目の当たりにするスケーラビリティ関係の落とし穴を見落としているかもしれません。 膨大な数のセンサーが計測する何種類もの異なるデータが、信頼性の異なるネットワークを通して、ディスプレイの有無に関わらずユーザーのエンドポイントまで多数の組み合わせとなります。さらに、そういったソフトウェアを動作させるプラットフォームの選択もしなければいけません。PC で?スマホで?組み込み機器で?クラウドは? 一般的には、多くのユースケースに対応するためには、多くの機能を、様々なプラットフォームに向けて、色々な形で、パフォーマンスとフットプリントを考慮しつつ、ソースコードをコンパクトに保ち、少ないデータ転送量で実現するような実装をする必要があります。 これらのすべてを完璧に実現するにはスケーラビリティの問題を回避するように精密な計画を立て、柔軟かつ効率的にアプリケーションの開発、改善、保守に努めなければなりません。 先端を行く企業の中にはソリューションを既に探し始めているところがあるというのは朗報でしょう。そして、まさにそれが、この記事から始まる連載でお伝えしたいことです。みなさんがどのようにプロジェクトを開始し、将来に備えるべきかについてベストプラクティスや技術の紹介をしたいと思います。 今後数週間で、以下のトピックについての記事を記載する予定です。(翻訳し次第リンクを切り替えます) Qt の MQTT でデバイス間通信の最適化 Qt におけるシリアル化 Message integration with DDS Remote UIs with WebGL and WebAssembly Cloud integration 詳細が気になる、もしくは直接話を聞きたい場合は? Qt for Automation […]

Read More

Qt 5.11 の圧縮テクスチャ

Published Wednesday September 5th, 2018 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Compressed Textures in Qt 5.11 を翻訳したものです。 執筆: Eirik Aavitsland, 2018年05月07日 最近のユーザーインターフェースはグラフィックスがどんどん派手になっていて、グラフィックメモリに収めたいテクスチャの数もどんどん増えています。リソースが比較的高価な組み込みシステムでは特にこの傾向が強く、パフォーマンスとの格闘にも成り得ます。1つの解として、グラフィックのアセットのメモリの使用量を減らすということがあげられます。 OpenGL テクスチャの圧縮には、起動時間と実行時のパフォーマンスを大きく改善する可能性があります: 起動時:jpeg や png のような圧縮形式の解凍の手間がありません 起動時:テクスチャは比較的小さいので、GPU メモリに転送する時間も短縮されます 実行時:メモリのバンド幅の利用が削減されます 解凍作業は単純でハードウェアで行われるため、パフォーマンスの大きな低下は起こりません Qt Quick 2 での圧縮テクスチャ Qt Quick 2 のソースコードには長い間 textureprovider というサンプルが含まれていました。これは ETC1 圧縮のテクスチャを pkm 形式のコンテナファイルから読み込んで画像として提供するようなものを実現する際に有用なサンプルでした。 Qt 5.10 で、この機能は Qt Quick 自体に密かにインポートされていました。と言うわけで特になにもしなくても、ローカルやリソース内の pkm ファイルを Image の source に指定することで実現が可能です。また、ETC2 圧縮スキームの対応も行われました。 Qt 5.11 […]

Read More

Hello Qt for Python

Published Wednesday September 5th, 2018 | Leave a comment
Posted in Qt for Python | Tags: ,

この記事は The Qt Blog の Hello Qt for Python を翻訳したものです。 執筆: Cristián, 2018年05月04日 Qt for Python のテクノロジープレビューのリリースが迫って来たのに伴い、Python の世界 へのドアの開け方を簡単に紹介したいと思います。 早速ですが、QWidgets を使って Qt for Python の簡単さを実感してみましょう。 すべてのスクリプトはだいたい以下のような構成になっています: QApplication のインスタンスを生成します QWidgets の中から使用したいもの(QLabelなど)をインポートします アプリケーションを表示し、QApplication を実行します これらをまとめると、以下のようになります。 # hello_world.py from PySide2.QtWidgets import QApplication, QLabel app = QApplication([]) label = QLabel(“Hello Qt for Python!”) label.show() app.exec_() これを実行するのは、単に python hello_world.py を実行するだけです。 […]

Read More

マイクロコントローラー(MCU)で Qt

Published Monday September 3rd, 2018 | Leave a comment
Posted in Qt | Tags: , , , ,

この記事は The Qt Blog の Qt on Microcontrollers (MCU) を翻訳したものです。 執筆: Mikhail Svetkin, 2018年05月03日 Qt をマイクロコントーラー(MCU)でのソフトウェア開発に使うことができないか、オペレーティングシステムなしに(“bare metail”) Qt を動かすことができないかという声をよく耳にします。本日は、いくつかの動作デモをお見せしながらこれらの質問に回答したいと思います。 なぜマイクロコントローラーなのか? MCU とは単一の集積回路で動作する小さなコンピューターです。性能は劣りますが、システムオンチップ(SoC) とよく似ています。マイクロコントローラーは、車のエンジン制御や埋め込み型の医療機器、ウェアブル、リモコン、OA機器、家電、工具類、おもちゃやその他の組み込みシステムのような自動制御機器でよく利用されています。MCU を採用する利点はサイズの小ささと特にボリュームの大きい製品ではコストがとても低いことです。 MCU はその定義が示すように、サイズが小さく、消費電力が低く、単価が安いという特徴があります。というわけで、MCU を採用する一番の理由は、コストの削減ということが言えるでしょう。 なぜ Qt を MCU で使いたいの? スペックの低さはソフトウェア開発の選択肢に制限をもたらします。GUI が伴う場合はそれが顕著で、ファームウェアのサイズやランタイムのメモリ消費量、GUI の美しさなどの問題が起こりえます。 MCU 向けの GUI の解は現在はありません。もちろん、特定の MCU 向けの特定の問題に対するソリューションはいくつかありますが、まだまだ不十分です。また、そういうライブラリが「クロスプラットフォーム的に」なっている事は稀(現実にはない)です。 いくつかの有料のツールキットは良くできていますが、ほとんどがソースコードが公開されていません。つまり、みなさんは「ブラックボックス」を購入することで、ベンダーロックのリスクを抱えます。 ここで、Qt が使えたらどれほど素晴らしいか想像してみましょう。クロスプラットフォームの(GUI を含む)豊富なクラスライブラリで、素晴らしいドキュメントやサンプルも揃っていて、素晴らしいオープンソースのコミュニティも存在します。 残念ながら現時点では前述のハードウェアの制限により、組み込みでの Qt(Qt for Device Creation) が 公式に対応しているもの は Cortex-A 相当で、Linux […]

Read More

Qt Quick の 64-bit ARM でのパフォーマンスの改善

Published Monday September 3rd, 2018 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の Qt Quick Performance Improvements on 64-bit ARM を翻訳したものです。 執筆: Tuukka Turunen, 2018年04月24日 Qt 5.9 LTS の目標の1つは Qt 5.6 LTS に対するパフォーマンスとメモリの消費量を改善することでした。この記事では、64-bit ARMv8 のインストラクションセットを持つ最近の組み込みCPUでのパフォーマンスの改善について解説したいと思います。Qt 5.6.3 と比較した結果、QML のパフォーマンスは2倍に上り、JavaScript については何と18倍になっています。 Qt 5.9 LTS のリリース時に Qt 5.9 のパフォーマンスに関する記事 を書き、パフォーマンスが改善した分野の概要を紹介しました。これらの改善は OS の種類やプロセッサのアーキテクチャに依らないもので、すべてのユーザーが効果を得られるものでした。それぞれのプロセッサや OS にはそれぞれの特徴があるため多少のバラツキはありますが、Qt のパフォーマンスは常に改善しつづけています。別の言い方をすると、Qt を最新版にアップデートする度に、既存のシステム上でよりよいパフォーマンスが得られます。ハイエンドのシステムでかなり高度な UI を実現しているところでも、ローエンドのハードウェアで頑張っているところでもパフォーマンスの改善の効果は得られます。 最近の組み込み向けのプロセッサでは 64bit 向けの ARMv8 のインストラクションセットを提供するものが増えていて、32bit の ARMv7 などと比べると […]

Read More

Qt for WebAssembly テクノロジープレビューのベータ版

Published Thursday May 24th, 2018 | Leave a comment
Posted in Qt for WebAssembly | Tags:

この記事は The Qt Blog の Beta for Qt for WebAssembly Technology Preview を翻訳したものです。 執筆: Eskil Abrahamsen Blomfeldt, 2018年04月23日 WebAssembly はウェブブラウザ上での実行のためのバイトコードのフォーマットです。この技術に対応したブラウザを搭載した端末では、アプリケーションのデプロイがインストール等のステップなしに実現することが可能になります。アプリケーションはブラウザ内のセキュアなサンドボックスで実行されるため、デバイスの機能へのフルアクセスが必要のないアプリケーションでは簡単に素早くアプリケーションを実行できるメリットがあります。 Qt 5.11.0 のリリースに合わせて Qt for WebAssembly のテクノロジープレビュー版のリリースを予定しています。これにより、皆さんの Qt アプリがブラウザ上で動作させることが可能になります。 本日はベータ版のリリースで、Qt Account のダウンロードからソースコードを落とすことができます。このベータリリースに対するフィードバックをいただければと思います。 公式の wiki ページ には、開発環境のセットアップやパッケージのビルドに関する情報が記載されています。 不具合を見つけた際には バグレポート をお願いします。

Read More

Qt for Python があなたの身近なコンピューターにも

Published Thursday May 24th, 2018 | Leave a comment
Posted in Qt for Python | Tags:

この記事は The Qt Blog の Qt for Python is coming to a computer near you を翻訳したものです。 執筆: Harald Kjølberg, 2018年04月13日 みなさんの中には、いや、おそらくみなさんの多くは Qt が QMLや Qt Quick Controls、Qt Widgets といった技術を駆使して、素晴らしいユーザーインターフェースを作ることが可能な、素晴らしい C++ のフレームワークだということをご存知でしょう。ここで私が特に主張したいところは、C++ が今日世界中で使われているプログラミング言語の中でも特に幅広く使われているということで、それに対してマサカリを投げてくるような人はおそらくいないでしょう。Python 人口が急速に増えているということも、おそらく幅広く認知されている事実かと思います。で、この記事はなんの記事って思うでしょ?それは2分後のお楽しみです。 C++ と Python はどちらも素晴らしいプログラミング言語として、別々の分野で使われています。C++ はプログラミング界のスター・デストロイヤーで、すべての問題を破壊してくれる存在です。と、同時によく分かっていない人にとっては頭痛の原因にもなり得ます。このため、プログラミング界のミレニアム・ファルコンである Python を選択する方が便利なケースもあります。この場合はお姫様でも密輸団でも誰でも操縦ができ、オルデランからヤヴィンまで光速で移動が可能です。そして、クルー全員をスター・デストロイヤーから連れ出すにせよ、ミレニアム・ファルコンで 駆けずり回るにせよ、最新のユーザーインターフェースが欲しいでしょう。まさにそのスター・デストロイヤーとミレニアム・ファルコンの橋渡しのところこそがプログラミング界の R2-D2 である Qt が必要とされている場所になります。 Qt の Python バインディングの PySide2 はこの春、装いを新たに生まれ変わりました。Python アプリケーションで使われる Qt であることをちゃんと反映したかったため、Qt for […]

Read More
Get started today with Qt Download now