見出し画像

Qt6 QMLの和訳文書P1~P19

Welcome!


Welcome to The Qt 6 Book - A book about QML. This text will guide you through QML, Qt's language for creating dynamic user interfaces. I believe that the ability to build declarative, reactive, hardware accelerated user interfaces executing at native performance across all major platforms (and some not so major) is a game changer. When starting with Qt, it was almost as if I had my secret weapon to building software quickly. QML takes that to the next level. How is this book different from the Qt documentation? I hear you ask. The intention is to build a complement. This book is meant as a book that you can read from front to back where each chapter builds on what you've previously learned. But it can also be used as a way for the experienced reader to get oriented in a new topic. Each chapter focuses on a specific topic and introduces the concepts from Qt and QML. However, the Qt documentation will always provide the full picture and is a great reference to look up the details about all elements, properties, enumerations, and more. I wish you a pleasant read! Johan Thelin

「ようこそ!Qt6の本へようこそ!QMLについての本です。このテキストは動的なユーザ―インターフェースを作るためのQtの言語を、QMLを通じてガイドします。私は全ての主なプラットフォームを通して、ネイティブのパフォーマンスで実行している宣言型、反応型、ハードウェアアクセラレートされたユーザーインターフェースを構築する能力は、ゲームチェンジャーであると考えています。
Qtで始めると、私がほとんどあたかもソフトウェアを素早く開発するための秘密兵器を持っているかのようでした。QMLはそれを次のレベルへ連れて行くものです。Qtのドキュメンテーションとこの本の違いはどのようなものかって?私はあなたが尋ねるのが聞こえてきます。この本は、各章が以前に学んだことに基づいて構築されている、前から後ろまで読むことができる本として意図されています。(前の章の内容が後ろの章の内容の前提知識となるような構成になっています。(翻訳者))しかし新しいトピックで経験値を持った読み手がスタート地点にたつようになるための方法として使うこともできます。それぞれの章は特有のトピックに焦点を合わせており、QtからQMLのコンセプトを紹介しています。しかしながら、Qtドキュメンテーションは常に全体像を提供しますし、全ての要素、プロパティ、列挙体、そしてさらに多くの全てのものについて詳細を探すことができます。私はあなたがわくわくして読書することを願っています。ヨハン セリン」

Structure


The book can be said to be split into three parts. The split is not clear cut enough to motivate a strict division of chapters, but more of a guideline that we've tried to follow when writing it. The first few chapters, let's say until somewhere around chapter 5 - 7 can be considered an introduction. If you want to learn QML, you should make sure to read these chapters. The following chapters, 6-14, can be seen as fairly separate chapters introducing independent topics, even though the models from chapter 7 are used in many more places. Feel free to dive into these in the order that you like and learn about the topics that you are curious about. The remainder of the book focuses on more advanced topics such as details of JavaScript, mixing C++ and QML, and the Qt for Python bindings and QML. These are important topics and I really want you to read them. To build a full application with QML you need to understand these topics, but their main focus is not on QML.

この本は3つのパートに分かれているということができます。その分割はどうしてそのような区分けがなされているのかというはっきりとした説明ができるものではないのですが、それを書くときに従おうとしたガイドラインの多くがあるのです。最初のいくつかの章では、章5-7当たりまでは、紹介文として考えられています。もしあなたがQMLを学びたいのであれば、これらの章を確実に読むべきです。次の章は、6-14あたりですが、chapter7からのモデルは多くの場所で利用されるものの、個別のトピックについてかなり特有の章であるとわかります。あなたが好きな順番、興味を持った順番でこれらの章については飛び込むことができます。本の残りの部分は、JavaScript, C++とQMLの融合、そしてQt for PythonとQMLのバインディングのような、より進んだトピックに焦点を当てています。QMLで完全なアプリケーションを構築するには、これらのトピックを理解する必要がありますが、それらの主な焦点はQMLではありません。

Never Ending Work in Progress

The Qt 6 Book is a never ending work in progress. We welcome contributors and are planning to open up our infrastructure to let you contribute both by reporting issues and by contributing fixes and new content. The end goal is to present you with a printed book when the material has reached a maturity level that we are happy with, but we want to share this with you already now and to learn from your feedback what to improve, and what additional content to add.

Qt6の本は進行中で終わりなき仕事です。私たちは貢献者を歓迎します。そして問題を報告すること、修正を行ったり、新しい内容を加筆することで貢献していただくためのインフラ整備を計画しています。最後の目的はあなたのフィードバックから改善するべき点を学び、追加の内容を加筆することで私たちが幸せを感じるほどの成熟度に到達したとき、本があなたに届けられるようになることです。

Acknowledgements


This book would not have been possible to create without the kind sponsorship from The Qt Company. It is a privilege to be able to work on a project such as this, and their help has been invaluable. I would like to give a special mention to (alphabetically): empenzes Fabian K Luca Di sera magoldst-qt Maurice Kalinowski Mitch Curtis nezticle Tino Pyssysalo Ulf Hermann Vladimir Minenko

謝辞
この本はQtカンパニーからの厚意なくしては作ることができませんでいsた。このようなプロジェクトで働くことができるというのは特権であり、彼らの助けは計り知れません。私は(アルファベット順で)特別な謝辞を送りたいと思います。
empenzes
Fabian K
Luca Di sera
magoldst-qt
Maurice Kalinowski
Mitch Curtis
nezticle
Tino Pyssysalo
Ulf Hermann
Vladimir Minenko

Contributors

This book was made possible by the great community contributors. I would like to thank them all (alphabetically): alexshen arky DavidAdamsPerimeter delvianv guoci nittwitt oleksis LorenDB paulmasri QtSCH ruudschouten task-jp topecongiro VideoCarp wangchunlin5013

貢献者
この本は偉大なるコミュニティの貢献者たちによって利用可能となりました。私は(アルファベット順に)彼らにお礼を言いたいと思います。
alexshen
arky
DavidAdamsPerimeter
delvianv
guoci
nittwitt
oleksis
LorenDB
paulmasri
QtSCH
ruudschouten
task-jp
topecongiro
VideoCarp
wangchunlin5013

History


This book is based on The QML Book (https://qmlbook.github.io/) , originally written for Qt 5. I would like to thank all contributors to that book (alphabetically):
aamirglb
alexeRadu
andreabedini
amura11
bakku
cibersheep
dbelyaev
danielbaak
DocWicking
empyrical
Ge0
gillesfernandez
gitter-badger
gsantner
hckr
iitaka1142
jiakuan
justinfx
maggu2810
marco-piccolino
mariopal
mark-summerfield
mhubig
micdoug
Mihaylov93
moritzsternemann
RossRogers
Swordfish90
sycy600
trolley
29jm
I would also like to give a special mention to Pelagicore, The Qt Company and Felgo for help the development of The QML Book by sponsoring our work and being generally awesome when it comes to feedback and support.

この本は元々はQt5のために書かれたThe QML Bookに基づいています。私はその本の全ての貢献者たちに感謝の意を表します。
私は
(alphabetically):
aamirglb
alexeRadu
andreabedini
amura11
bakku
cibersheep
dbelyaev
danielbaak
DocWicking
empyrical
Ge0
gillesfernandez
gitter-badger
gsantner
hckr
iitaka1142
jiakuan
justinfx
maggu2810
marco-piccolino
mariopal
mark-summerfield
mhubig
micdoug
Mihaylov93
moritzsternemann
RossRogers
Swordfish90
sycy600
trolley
29jm

I would also like to give a special mention to Pelagicore, The Qt Company and Felgo for help the development of The QML Book by sponsoring our work and being generally awesome when it comes to feedback and support.

「私はPelagicoreに特別な謝意を示したいと思います。QtカンパニーとFelgoは私たちの仕事のスポンサーとなることにより、QMLBookの開発を助けてくれました。そしてフィードバックとサポートをするということになると、全般的にいい働きをしてもらいました。

Authors


The Qt 6 Book has been written by a team of authors. They are: Johan Thelin Johan works as a system architect building automotive solutions. He has a background from over twenty years of device creation based on Linux, Qt and more. He has written for various papers and blogs, presented at numerous conferences, and provides advice on how to build software, and software organizations. As an avid believer in free and open source solutions, he founded and organizes the foss-north conference (https://foss-north.se) . You can find out more about Johan at LinkedIn (https://www.linkedin.com/in/johanthelin) , his blog (http://www.thelins.se/johan/blog/) , and his homepage (http://e8johan.se) .


Qt6の本は共著で書かれました。彼ら:Johan Thelinです。
ヨハン・セリン  ヨハンは、自動車ソリューションを構築するシステムアーキテクトとして働いています。かれはLinux、Qt、そしてそれ以上のものをベースとしたデバイス作成20年の経験を持っています。彼は様々な雑誌やブログに記事を書いてきて、数多のカンファレンスに参加し、そしてソフトウェアやソフトウェア組織を作るためのアドバイスを提供しています。フリーかつオープンソースの熱心な信者であり、foss-north会議(https://foss-north.se) を築き、組織化しています。あなたはヨハンについて、LinkedIn(https://www.linkedin.com/in/johanthelin)でより多くのことがわかります。彼のブログは(http://www.thelins.se/johan/blog/)で、ホームページは、(http://e8johan.se)です。

Jürgen Bocklage-Ryannel Jürgen is the CEO of ApiGear, which is a collaborative machine interface design tool that enables teams to collaborative design software interfaces with automated monitoring and simulation solutions. He was the co-founder of Pelagicore AG and was responsible there as Chief User Interface Architect for the early versions of theDaimler MBUX. He focuses currently on an API driven workflow to design and create the interfaces between the user experience and the underlying services for different platforms. You can find out more about Jürgen at LinkedIn (https://www.linkedin.com/in/jryannel/) .

ユルゲン・ボックラーゲ・リャネル ユルゲンは、チームが自動監視およびシミュレーションソリューションを使用してソフトウェアインターフェースを共同設計できるようにするコラボレーティブマシンインターフェース設計ツールであるApiGearのCEOです。彼はPelagicore AGの共同創設者であり、ダイムラーMBUXの初期バージョンのチーフユーザーインターフェイスアーキテクトとして責任を負っていました。彼は現在、さまざまなプラットフォームのユーザーエクスペリエンスと基盤となるサービスとの間のインターフェイスを設計および作成するためのAPI駆動型ワークフローに焦点を当てています。ユルゲンの詳細については、LinkedInをご覧ください。(https://www.linkedin.com/in/jryannel/)

Cyril Lorquet Co-Founder and CEO of the belgian company Eunoia Studio (https://www.eunoia.be) , Cyril helps organizations turn their know-how into software products. Since 2009, he has been working on software products in various contexts (construction, healthcare, hydrology, marketing, ...) - several of them involving Qt. Software engineer at heart, he has a passion for design processes, software development and change management. You can find out more about Cyril at LinkedIn (https://www.linkedin.com/in/cyrillorquet)

シリル・ロルケベルギーの会社Eunoia Studio(https://www.eunoia.be)の共同創設者兼CEOであるシリルは、組織がノウハウをソフトウェア製品に変えるのを支援しています。2009年以来、彼はさまざまな状況(建設、ヘルスケア、水文学、マーケティングなど)でソフトウェア製品に取り組んできました。そのうちのいくつかはQt.ソフトウェアエンジニアを中心としており、設計プロセス、ソフトウェア開発、変更管理に情熱を注いでいます。シリルの詳細については、LinkedIn(https://www.linkedin.com/in/cyrillorquet)をご覧ください。


Qt and Qt Quick

This book provides you with a walk through of the different aspects of application development using the new Qt 6. It focuses on the Qt Quick technology, but also provides necessary information about writing C++ back-ends and extensions for Qt Quick. This chapter shall provide a high-level overview of Qt 6. It shows the different application models available for developers, as well as a showcase application, as a sneak preview of things to come. Additionally, the chapter aims to provide a wide overview of the Qt content and how to get in touch with the makers of Qt the Qt Company.

「この本は新しいQt6を利用してアプリケーション開発の異なる側面を渡り歩く道をあなたに提供するものです。Qt Quickテクノロジーに焦点を当てていますが、C++バックエンドを書くこと、そしてQt Quickの拡張コードについて必要な情報を提供することもあります。この章はQt6の高度なレベルの概観を提供します。開発者が利用できるさまざまなアプリケーションモデルと、今後のプレビューとしてショーケースアプリケーションが表示されます。加えて、この章では、Qtコンテンツの幅広い概要と、Qtのメーカーと連絡を取る方法を提供することを目的としています。」

Qt 6 Focus

Qt 5 was released many years ago and introduced a new declarative way of writing stunning user interfaces. Since then a lot has changed in the world around us. Qt 6 will be a continuation of what has been done with Qt 5 and should not be disruptive to the majority of users. What makes Qt valuable to its users? Its cross-platform nature Its scalability World class APIs and documentation Maintainability, stability and compatibility A large developer ecosystem Qt 6 evolves the Qt product to new markets while keeping close to the users values. The desktop market is the root of the Qt offering. It is where most users get the first contact with Qt and it forms the base for the Qt tools and its success. It is expected that Qt 6 will grow most in the embedded and connected devices market from high-end near desktop performing devices to low-end devices like microcontrollers. Touch screens will come to an exponential increasing number to these devices. Many of these devices will have relatively simple functionality but require a polished and smooth user interface. At the other end of the spectrum there is a demand for more complex and 2D/3D integrated user interfaces. The 3D content with 2D elements based interfaces will be common, as will be the use of augmented and virtual reality. The growth of connected devices and the higher demand for smooth user interfaces require a simpler workflow to create applications and devices. Integrating UX designers into the development workflow is one of the goals of the Qt 6 series.

Qt5はずっと前にリリースされ、素晴らしいユーザーインターフェースを書くための新しい宣言型言語の手法を紹介しました。それから私たちの周りでは全体的に多くのことが変わりました。Qt6はQt5で行われた事の続きであり、大多数のユーザーにとって混乱をもたらすものであってはなりません。Qtがユーザーにとって価値がある理由は何でしょうか。そのクロスプラットフォームの性質 そのスケーラビリティ ワールドクラスのAPIとドキュメント 保守性、安定性、互換性 大規模な開発者エコシステム Qt 6は、ユーザーの価値観に近づきながら、Qt製品を新しい市場に進化させます。デスクトップ市場はQt製品のルーツです。これは、ほとんどのユーザーがQtと最初に接触する場所であり、Qtツールとその成功の基盤を形成します。Qt 6は、ハイエンドのニアデスクトップパフォーマンスデバイスからマイクロコントローラーなどのローエンドデバイスまで、組み込みおよび接続デバイス市場で最も成長すると予想されます。タッチスクリーンは、これらのデバイスに指数関数的に増加する数になります。これらのデバイスの多くは比較的シンプルな機能を備えていますが、洗練されたスムーズなユーザーインターフェイスが必要です。スペクトルの反対側では、より複雑で2D/3D統合されたユーザーインターフェイスが求められています。2D要素ベースのインターフェースを備えた3Dコンテンツは、拡張現実と仮想現実の使用と同様に一般的です。コネクテッドデバイスの成長とスムーズなユーザーインターフェイスに対する需要の高まりにより、アプリケーションとデバイスを作成するためのよりシンプルなワークフローが必要とされています。UXデザイナーを開発ワークフローに統合することは、Qt 6シリーズの目標の1つです。

Qt 6 brings us:

  • Next generation QML

  • Next generation graphics

  • Unified and consistent tooling

  • Enhanced Qts C++ APIs

  • Component Marketplace

Qt6が私たちにもたらすものは、
次世代のQML
次世代のグラフィック
統合され、一貫したツール
高度なQt C++ API
コンポーネントのマーケットプレイス

Qt Building Blocks

Qt 6 consists of a large number of modules. In general, a module is a library for the developer to use. Some modules are mandatory for a Qtenabled platform and form the set called Qt Essentials Modules. Other modules are optional, and form the Qt Add-On Modules. The majority of developers may not need to use the latter, but it’s good to know about them as they provide invaluable solutions to common challenges.

Qt6は多くのモジュールから構成されています。一般的に、あるモジュールは開発者が使うライブラリです。一部のモジュールはQtで有効なプラットフォームに必須であり、Qt Essentialsモジュールと呼ばれるセットを形成します。他のモジュールは選択できであり、Qtのアドオン型モジュールを形成します。開発者の多数は後者を利用する必要はありませんが、それらは計り知れない解決を一般的な難問へ提供するので、それらについて知る事は、良い事です。

Qt Modules


The Qt Essentials modules are mandatory for any Qt-enabled platform. They offer the foundation to develop modern Qt 6 Applications using Qt Quick 2. The full list of modules is available in the Qt documentation module list (https://doc.qt.io/qt-6/qtmodules.html#qt-essentials) .

Qtのエッセンシャルモジュールは全てのQtで利用可能なプラットフォームにとって必須のものです。それらはQt Quick 2を使って現代的なQt6のアプリケーションを開発するための基盤を提供してくれます。モジュールの完全なリストはQt documentation モジュールリスト内で利用可能です。
(https://doc.qt.io/qt-6/qtmodules.html#qt-essentials) .

Core-Essential Modules

QMLプログラミングをスタートするためのQt6モジュールの最小限のセットです。

  • Qt Core - 他のモジュールによって利用される非GUIモジュール

  • Qt D-BUS - Linux 上の D-Bus プロトコルを介したプロセス間通信用のクラス。

  • Qt GUI - グラフィカル ユーザー インターフェイス (GUI) コンポーネントの基本クラス。OpenGL が含まれています。

  • Qt Network - ネットワークプログラミングをより簡単かつ移植性のあるものにするためのクラス。

  • Qt QML - QML および JavaScript 言語のクラス。

  • Qt Quick - カスタム ユーザー インターフェイスを使用して非常に動的なアプリケーションを構築するための宣言型フレームワーク。

  • Qt Quick Controls - デスクトップ、組み込み、およびモバイルデバイス用の高性能ユーザーインターフェイスを作成するための軽量QMLタイプを提供します。これらの型は、単純なスタイル アーキテクチャを採用しており、非常に効率的です。

  • Qt Quick Layouts - レイアウトは、ユーザーインターフェイスでQt Quick 2ベースのアイテムを配置するために使用されるアイテムです。

  • Qt Quick Test - QMLアプリケーション用の単体テストフレームワークで、テストケースはJavaScript関数として記述されています。

  • Qt Test - Qtアプリケーションとライブラリの単体テスト用のクラス。

  • Qtウィジェット - C ++ウィジェットでQt GUIを拡張するクラス。



Qt Add-On Modules

Besides the essential modules, Qt offers additional modules that target specific purposes. Many add-on modules are either feature-complete and exist for backwards compatibility, or are only applicable to certain platforms. Here is a list of some of the available add-on modules, but make sure you familiarize yourself with them all in the Qt documentation add-ons list (https://doc.qt.io/qt-6/qtmodules.html#qt-add-ons) and in the list below.

「エッセンシャルモジュールよりさらに、Qtは特別な目的をターゲットとする追加のモジュールを提供します。多くのアドオン型モジュールは機能補完のため、そして後方互換性のために存在しているか、特定のプラットフォームにのみ適用されます。こちらは利用可能なアドオン型モジュールのいくつかのリストですが、Qtドキュメントのアドオンリスト(https://doc.qt.io/qt-6/qtmodules.html#qt-add-ons)と以下のリストでそれらすべてに精通していることを確認してください。」


Network: Qt Bluetooth / Qt Network Authorization
UI Components: Qt Quick 3D / Qt Quick Timeline / Qt Charts / Qt Data Visualization / Qt Lottie Animation / Qt Virtual Keyboard
Graphics: Qt 3D / Qt Image Formats / Qt OpenGL / Qt Shader Tools / Qt SVG / Qt Wayland Compositor
Helper: Qt 5 Core Compatibility APIs / Qt Concurrent / Qt Help / Qt Print Support / Qt Quick Widgets / Qt SCXML / Qt SQL / Qt State Machine / Qt UI Tools / Qt XML TIP

TIP
As these modules are not part of the release, the state of each module may differ depending on how many contributors are active and how well it’s tested.

これらのモジュールはリリースの部分ではないので、それぞれのモジュールの状態はどれだけ多くの貢献者たちがいるかによりますし、どれだけよくテストされているのかにもよります。

Supported Platforms

Qt supports a variety of platforms including all major desktop and embedded platforms. Through the Qt Platform Abstraction, it’s now easier than ever to port Qt to your own platform if required. Testing Qt 6 on a platform is time-consuming. A subset of platforms was selected by the Qt Project to build the reference platforms set. These platforms are thoroughly tested through the system testing to ensure the best quality. However, keep in mind that no code is error-free.

Qtは多くの主なデスクトップ、そして組み込み型のプラットフォームを含む様々なプラットフォームをサポートします。Qtプラットフォームアブストラクションを通して、Qtをあなた自身のプラットフォームへポートすることは今までよりも簡単です。Qt6をプラットフォーム上でテストすることは、時間がかかります。プラットフォームのサブセットはリファレンスプラットフォームのセットを打ち立てるQtプロジェクトによって選択されました。これらのプラットフォームは最も良い品質を確保するためにシステムのテストを通して完全にテストされます。しかしながら、エラーなきコードはないということも理解してください。

Qt Project

From the Qt Wiki (http://wiki.qt.io/) : “The Qt Wiki is a meritocratic consensus-based community interested in Qt. Anyone who shares that interest can join the community, participate in its decision-making processes, and contribute to Qt’s development.”

「Qt Wikiから:Qt WikiはQtに興味を持つ合意形成を基本とした実力主義のコミュニティです。興味を共有する人はだれでもコミュニティに参加できますし、意思形成プロセスに参加できますし、Qtの開発に貢献できます。

The Qt Wiki is a place where Qt users and contributors share their insights. It forms the base for other users to contribute. The biggest contributor is The Qt Company, which holds also the commercial rights to Qt. Qt has an open-source aspect and a commercial aspect for companies.


QtWikiはQtのユーザーと貢献者が彼らの洞察を共有する場所です。他のゆ―ざーが貢献するための基礎を形成します。最も大きな貢献者はQtカンパニーであり、Qtへの商用権利も持ちます。Qtはオープンソースである側面を持ちますし、カンパニーのための商用の側面も持ちます。

The commercial aspect is for companies which can not or will not comply with the open-source licenses. Without the commercial aspect, these companies would not be able to use Qt and it would not allow The Qt Company to contribute so much code to the Qt Project.



商用の側面はオープンソースライセンスに応じることができないか、応じないカンパニーのためです。商用の側面なくしては、これらのカンパニーはQtを使うことができないし、QtカンパニーがQtプロジェクトへ多くのコードをを提供することはできません。

There are many companies worldwide, which make the living out of consultancy and product development using Qt on the various platforms. There are many open-source projects and open-source developers, which rely on Qt as their major development library. It feels good to be part of this vibrant community and to work with this awesome tools and libraries. Does it make you a better person? Maybe:-) Contribute here: http://wiki.qt.io

世界中には多くの会社がありますし、いろいろなプラットフォームでQtを使ってコンサルタント業、製品開発業で生計を立てています。多くのオープンソースプロジェクトと、オープンソース開発者がいて、主な開発ライブラリとしてQtを使っています。この活気に満ちたコミュニティの一部であり、このような素晴らしいツールとライブラリと共に活動できることは心地がいいものです。それはあなたをよりよい人へしますか?多分、ここで貢献してください。http://wiki.qt.io




この記事が気に入ったらサポートをしてみませんか?