問題タブ [qwidget]

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.

0 投票する
1 に答える
231 参照

drag - QWidget を QGraphicsView にドラッグする方法はありますか?

QWidget によって継承されたカスタム項目を QGraphicsView にドラッグしたいですか? 任意のアイデアありがとう

0 投票する
1 に答える
654 参照

c++ - 半透明の QWidget はクリック可能なクロス OS にする必要があります

Qt (C++) アプリ、クロス OS で次のことを達成しようとしています。プログラムを実行すると、フルスクリーンの QWidget という新しいウィンドウがポップアップします。これをシースルー/透明にしたいので、ユーザーは実際には見えません。この「レイヤー」で、ユーザーはマウスをドラッグして (赤い) 長方形を描画し、マウスを離したときにスクリーンショットが撮影される領域を選択できます。

問題:
これはクロス OS でうまく機能しないように見えるため、この問題は透過レイヤー全体に存在します。レイヤーがある場所をクリックすると、mousePressEvent() を呼び出すため、レイヤーが存在しないかのように、レイヤーをクリックしてその下のウィンドウに移動します。ただし、Ubuntuではそうしません。Windowsでも同じ効果が欲しいのですが、これまでのところ何もありません...
(ボタンなどの別のGUIオブジェクトを表示しても、ボタンはレイヤーのクリック可能な部分になるだけです)

Ubuntu 11.04 32 ビットおよび Windows 7 Home Premium 64 ビットでテスト済み。(Mac に近づこうとしているのですが、この問題は解決しますか?)

それで、これがどのように機能するか知っている人はいますか? これまでのコードを含めました。(他の100回の試行をすべてクリアします。)

main.cpp ここで translucentBackground を設定します。ここではおそらく設定を見逃しているか、何かが正しく構成されていません。

ウィジェット.cpp

ウィジェット.h

また、Qt の API ドキュメントと同様に、Google がこの件に関して見つけるすべての結果を調べたと思います。私はこれのオプションを真剣に使い果たしました。(私は Java でこのプロジェクトを開始しましたが、Qt を使用した C++ は、これまでのところ、はるかに少ない作業のようです。)

どんな助けでも大歓迎です!

0 投票する
1 に答える
148 参照

c++ - qt4: UI エディターによって作成されたウィジェットのイベント ハンドラー メソッドのオーバーライド

たとえば、プログラムではなく UI エディターで作成されたウィジェットに対して、paintEvent や mousePressEvent などのメソッドをオーバーライドできるかどうかを知りたいです。

0 投票する
2 に答える
5387 参照

qt - QWidget をアルファ透明にする方法

アルファ透過ウィジェットを作成する必要があります。これは基本的には影付きのナビゲーション バーであり、下のウィジェットは影を通して部分的に見える必要があります。ウィジェットは PNG をロードし、ペイント イベントで描画します。問題は、影がすべて黒く、アルファ透明でないことです。

これは私が現在使用しているコードです:

ウィジェットが本当に透明であることを確認するために何を変更する必要があるか知っている人はいますか?

0 投票する
1 に答える
2208 参照

qt - QPushButton がクリックされているかどうかを検出する

「ダウン」状態を描画できるように、paintEvent() 内からボタンが押されているかどうかを調べようとしています。ただし、この情報がどこにあるのかわかりません。QStyleOptionButton::state を試しましたが、ボタンがクリックされているかどうかはわかりません。デバッグ ステートメントの出力は常に "QStyle::State( "Active | Enabled | HasFocus | MouseOver" )" のようなものなので、MouseDown 状態については何もありません。

ボタンがクリックされているかどうかを検出する方法はありますか?

0 投票する
2 に答える
605 参照

qt4 - カスタム QWidget レイアウトの問題

私は QT を初めて使用し、最初のカスタム QWidget サブクラスを作成しました...ラベルをいくつか追加してみるまでは、すべてうまく機能します。それらはすべて上隅に押しつぶされます。

これが私のコードです:

}

私が間違っていることを誰かが知っていますか?これらのラベルのすべてがグリッドに配置されていないのはなぜですか? または、そうである場合、グリッドがサブクラスの使用可能なスペースをすべて使用していないのはなぜですか?

乾杯、

ジェームズ

0 投票する
1 に答える
2655 参照

qt - QWidgetが一貫して更新/再描画されない

ビューポート オブジェクトの選択が変更されると、新しいオブジェクトの QHash を含むシグナルが発行されます。この信号は、新しいプロパティ/設定 UI をそれらから持ち上げ、メイン ウィンドウのプロパティ ペインに表示されている既存のプロパティを破棄し、それらを新しいプロパティ/設定に置き換えるドキュメント サブウィンドウによってキャッチされます。

print ステートメントを使用すると、これが機能することがわかります。すべてのシグナル/スロット接続が正しく起動しています。ただし、メイン ウィンドウで直接操作を実行すると (ボタンを押し、マウスをウィジェットの上に置くと)、問題のウィジェットが更新されます。しかし、ビューポートでオブジェクトを選択しているときは、プロパティ ペインが更新されず、前のオブジェクトのプロパティが表示されてしまいます。ウィンドウを移動したり、ウィジェット (再描画をトリガーするため)、ウィジェットは魔法のように正しくなります。

これらの関数は、別のスレッドから呼び出されていません。コードで手動で update() を呼び出しても、何も変わりません。repaint() を直接呼び出すと (そうすべきではないことはわかっています)、少しはうまく機能しますが、少し不安定です。ウィジェットがまったく描画されないことがあります。

誰かが同様の経験をしたことがありますか?

0 投票する
1 に答える
2025 参照

c++ - QWidgetのデストラクタが仮想ではないのはなぜですか?

qwidget.hを見ると、次のようなデストラクタが見つかりました。

なぜこれが仮想として宣言されていないのか疑問に思いました

0 投票する
1 に答える
648 参照

qt - QGLWidget の問題

QGLWidget に問題があります。実際には、マウス操作で QGLWidget が更新されます。たとえば、ダブルクリック イベントを使用して、このウィジェットから別のウィンドウを開く必要があります。QGLWidget を親として新しいウィジェット QWidget を作成し、次のフラグを新しいウィンドウに設定しています。

QWidget::setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);

この新しいウィンドウは正常に開き、期待どおりに機能します。しかし、このウィンドウを閉じて QGLWidget を更新しようとすると、奇妙な動作をします。QGLWidget 全体 (新しいウィンドウが開いた領域) のごく一部が更新されますが、QGLWidget 全体ではありません。

また、ここで別のポイントを更新するのを逃しました。この問題は毎回発生するわけではありません。qt アプリケーションは別のアプリケーションで開かれ、必要な dll とともに再配布されます。独立したアプリケーションとして開く場合は問題ありません。しかし、他のアプリケーションで開くと、問題が再発します。

理由はありますか?

ありがとうございました!!

0 投票する
1 に答える
745 参照

qt - QGLWidget のコンテキスト メニューに関する問題

QGLWidget と QTreeView のカスタム コンテキスト メニューに問題があります。QTreeview と QGLWidget をスプリッタ付きの共通ウィジェットに追加しました。以下のコードでコンテキストメニューを開きます。

actions は QActions のリストです。

QGLWidget でマウスを押すと、特定の条件が満たされるとマウス カーソルが変化します。右クリックでコンテキスト メニューを開いた後、メニュー項目の 1 つでマウスを押すと、すべて問題ありません。コンテキスト メニューのいずれかの項目でマウスを押さないと、コンテキスト メニューが閉じて問題が発生します。問題は、マウス プレスが発生したときにすべての条件が満たされていても、マウス カーソルが変化しないことです。ここで QWidget がフォーカスを失ったかどうかはわかりません。そこで、マウスプレスイベントにフォーカスを設定してみました。しかし、あまり役に立ちません。この問題を解決するための提案。

ありがとうございました!