問題タブ [qt5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - マウス領域で移動した後、qml要素のx、y、値を取得するにはどうすればよいですか?
Qt5公式リリースを使用 -
画像要素の x、y プロパティを保存する必要があります。これ
プロパティが最初に設定された値を示しますが、必要なのは、マウスで画像を移動した後の現在の値です。おそらく単純なものが欠けているのでしょうが、他に何も見つかりません。本当に助けていただければ幸いです、ありがとう。
multithreading - Qt:QObjectが別のスレッドに移動した後、シグナル/スロットが機能しない
私はQt5を使用しており、moveToThread()によってQObjectワーカーをQThreadのインスタンスに渡すことでスレッドを実装しています。私の実装は次のようになります。
Worker.h
Worker.cpp
MainWindow.h
MainWindow.cpp
次の2つの信号/スロットペアが機能しないように見える理由がわからない
その結果、do_Work()
スロットがstarted()
QThreadオブジェクトのシグナルによってトリガーされると、スレッドを開始または停止できません。参考までに、この私の投稿は、ここで説明した以前の投稿の続きです。洞察があれば役立ちます...ありがとうございます
c++ - OSX Mountain Lion を使用した Qt 5.0 および c++11
7 年間離れていたので、C++ をもう一度試してみます。新しくリリースされた Qt 5.0 SDK for osx をダウンロードしましたが、Qt Creator を使用してコンパイルされた基本的な C++11 機能を取得できません。次のステートメント:
コンパイル エラーが発生します。
同様の問題についてグーグルで検索し、提案を見つけました
.pro ファイルで。残念ながら成功しませんでした。認識されないコマンド ライン オプションでビルドが失敗します。
私は何か間違ったことをしているに違いない。助言がありますか?
ありがとう、
フランス
c++ - 名前空間で型を返すQMLでC++スロットを使用する
最初に、以下はQt 5.0.0ベータ1までは正常に機能しましたが(おそらくベータ2とRCも、わかりません)、Qt5.0.0の最終リリースバージョンでは失敗します。Qt5.0.0の最終リリースバージョンで見られた結果のみを参照したいと思います。したがって、おそらくこれはQt5の最近の変更と関係があります。
C ++側では、名前空間に一連のクラス(QObjectから派生)があります(これはオプションでコンパイラフラグでトリガーされます。クラスは別のライブラリにあり、ライブラリは名前空間の使用をオプションとしてユーザーに任せています。図書館)。ここGame
でのクラスは、次のようになります(抜粋):
マクロは、Qtが実行するのと同じように、マクロ名で「QT」が「OAE」に置き換えられるだけで、 ...または何もOAE_BEGIN/END_NAMESPACE
展開されません。namespace OAE_NAMESPACE {
}
<qglobal.h>
以下で、「名前空間を有効にする」と言うときは、マクロを宣言したことを意味します。OAE_NAMESPACE
この場合は、値を使用しますoae
。
特に、このクラスのインスタンスと、アプリケーションのユーザーインターフェイスのQML内からPlayer
返されたクラスにアクセスします。player()
このために、私は次のようにクラスを登録します。
QMLフロントエンドに、QML内Game
で呼び出されるのインスタンスへのポインターを提供します。theGame
QML内では、これを通常どおり使用します。小さな例では、player()
:のポインタアドレスを出力する必要があります。
を設定したかどうかに応じて、次の結果が得られますOAE_NAMESPACE
(ちなみに、ライブラリとそれを使用するアプリケーションの両方に同じ設定を使用しています)。
名前空間を無効にすると、すべてが期待どおりに機能し、QMLによってポインタが出力されます。
/li>名前空間を有効にする場合(および
/li>using
ライブラリを使用するC ++コード内であるため、コードをまったく変更しません)、QMLは次の戻り値のタイプを理解できませんGame::player()
。の戻りタイプをに変更する
/li>Game::player()
とoae::Player*
、すべてが再び正常に機能します。
これまでの私の結論はmoc
、クラスの周りに配置した名前空間を考慮していないということです。私の最初の推測は次のとおりです。ねえ、moc
呼び出し時に名前空間を定義することを知りませんg++
。これは、.proファイルで行うことです。
ただし、戻り値のタイプをに変更しOAE_NAMESPACE::Player*
ても機能するため、mocはマクロを認識しますが、マクロを展開しないか、名前空間を解析しなくなります。OAE_NAMESPACE
OAE_BEGIN/END_NAMESPACE
moc
Player * Game::player() const
メソッドの戻り型を含む次の「stringdata」を生成します。
名前空間を無効にして戻りタイプを使用する場合
/li>Player*
:名前空間を有効にしてリターンタイプを使用する場合
/li>Player*
:名前空間を有効にしてリターンタイプを使用する場合
/li>OAE_NAMESPACE::Player*
:
一方、有効になっている場合は、名前空間でmoc
返されるクラス名を先頭に追加します。QMetaObject::className()
私の結論は、QObjectメタメソッドのシグニチャでこれらのタイプを使用する代わりに、書き込むことでこれを修正できるということです。(まあ、より良いマクロがあります)。これはコードではひどいように見えますが、メソッドがすでに名前空間にあるため、私には間違っているように見えるので、より良い解決策はありますか?OAE_NAMESPACE::ClassName
ClassName
OAE_PREPEND_NAMESPACE
今はOAE_BEGIN/END_MOC_NAMESPACE
(に類似しているQT_BEGIN/END_MOC_NAMESPACE
)もあるので、多分私はどこかにそれらが必要ですか?Qtでどこでどのように使用されているかわからないので、Qtと同じオプションの名前空間機能を使用したいので、ライブラリでそれに応じて使用する必要があります。
qt - Windows 用のオープン ソース Qt ライブラリ 5 バイナリ バージョンをインストールする方法
この質問は、具体的にQt libraries 5.0.0 for Windows (VS 2010 406 MB)
はhttp://qt-project.org/downloads (ただし、将来の 5.xx バージョンにも適用されると思います) に関するもので、それを「クリーンな」Windows ワークステーションにインストールします。
それを機能させるには何が必要ですか?私はダウンロード パッケージの正確な最小限のセットを求めています。つまり、「完全に修飾された」ダウンロード名の順序付けられたリストであり、できれば Microsoft ダウンロードへのリンクが含まれています。
同じダウンロードページの最新の Qt Creator を IDE として使用するので、Visual Studio をインストールする必要はありません。
私の現在の理解では、VC++ Express を見つけ、その SP1 アップデートを見つけ、デバッグ パッケージを見つけて、Qt Creator のデバッガー バックエンドを取得する必要があります。Windows SDK パッケージが必要かどうか、または VS を何らかのバージョンの Windows SDK に置き換えることができるかどうかがわかりません。いいえ、qt-project の Web ページはこれに答えていません。この特定のシナリオ (完全な非フリーの Visual Studio 2010 なしでバイナリ ライブラリのダウンロードを使用する) に対する指示はかなりあいまいです。
qt - C++ で QML 要素を作成しますか?
次の問題があります。
QQuickView
ファイルを使用して初期インターフェイスをロードし.qml
ます。次に、C++ を使用してorのようなQML 型をインターフェイスに追加します。Image
Text
C++ から既存の要素を操作できることはわかっていますが、新しい型を作成して追加するにはどうすればよいですか?
c++ - 使用するQtGUIコンテナは何ですか?関連するビデオ表示の問題-Windows7
複数のビデオ(メディア)ファイルを再生し、各ファイルでユーザーが変更できるようにするアプリケーションを設計しようとしています(たとえば、ビデオのスケーリング、回転、反転など)。私は勉強することから始めましたPhonon
が、しばらく調べた後、> =でサポートされなくなった(またはサポートが疑わしい)ことを読みましたQt5
。それで私は戻って、今私はqtmultimediaを見ています- QMediaPlayer
。私はc#-WPFのバックグラウンドから来ましたが、Qt-C++で以前にいくつかの作業を行いました。しかし、今回は、どのウィジェットを使用しなければならないかについて行き詰まり、混乱しています。、およびQMediaPlayer
にその出力(ビデオ)を表示できます。回転などの機能が必要なので、QGraphicsScene/Viewを組み込む必要があると思います。QVideoWidget
QGraphicsVideoItem
QAbstractVideoSurface
<1>では、アプローチはどうあるべきでしょうか?私はこれを行いました:使用QVideoWidget
->これをQGraphicsProxyWidget
via setWidget
()に追加しました(ただし、setWidget
()はQWidget
*を取り、Qt Assistantで見られるようにQVideoWidget
派生しQWidget
ていません-なぜこれが許可されているのですか?)-> via ()->にこれQGraphicProxyWidget
を追加しました構築中にこれを追加しました-> via ()に追加しました。これでいいですか?いつ使用するか?QGraphicsScene
addItem
QGraphicsScene
QGraphicsView
QGraphicsView
QMainWindow
setCentralWidget
QGraphicsVideoItem
QAbstractVideoSurface
<2>QVideoWidget
次のように複数を追加すると、ビデオやQVideoWidget
それ自体が表示されません(区別するためにペイントしました)。私は何が間違っているのですか?(ただし、音声出力があります):
<3>これをさらに研究する前に、前述のようにビデオを操作するためにQtで適切なツールを選択していますか、それとも何か他のことをする必要がありますか?
c++ - Qt4からQt5への移植:未解決の外部シンボル
Qt5は新世代のQtであり、いくつかの変更があります。
Qt4でうまく構築できるプロジェクトがあります。Qt5-VisualStudio2010パッケージをダウンロードし、プロジェクトをQt4からQt5に移植しようとしています。問題が発生します。
すべての「include」パスは適切に修正されています。ただし、コンパイラは現在、数百の「未解決の外部シンボル」を報告します(ほとんどすべての関数呼び出し、コンパイラが.libファイルを見つけられないように聞こえます)。Qt SDKフォルダーにあるすべての.libファイルを追加しようとしましたが、役に立ちませんでした。最も基本的なクラスとメソッド:QApplication :: exec(...)も「未解決のシンボル」として報告されます。
プロジェクトファイルは、Qt5パッケージに合うように変更されました。
Qtのこの新しいリリースで同様の経験をした人はいますか?
c++ - Qt で特定のシステム サウンドを再生する
Windows で「既定のビープ音」と呼ばれる標準の通知音をアプリケーションで鳴らしたいと考えています。QSound でシステム サウンドを参照する方法がわかりません。このサウンドを再生するためにサウンドが割り当てられていない QSound インスタンスが使用されていましたが、Qt 5 で修正されました。それを行う方法はありますか?
#ifdef
ソリューションが Windows でのみ機能する場合は問題ありません (ただし、サポートされている任意の OS でコンパイルして、Win APIを使用したくありません)。
qt5 - QNetworkAccessManager を使用して ftp サーバーからファイルのリストを取得する Qt コード
Qtで単純なFTP クライアントを作成しています。Qt 5.0を使用しています。
QNetworkAccessManager
as QFtp
is deprecated from Qt 5.0を使用してファイルをダウンロードおよびアップロードするコードを作成しました。
FTP上のすべてのファイルのリストを取得するコードを書きたいと思います。を使用して解決策を得ましQFtp
たが、使用していませんQNetworkAccessManager
。それを行う方法を提案してください。