問題タブ [paintevent]

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 投票する
3 に答える
4625 参照

qt - ウィジェットをサブクラス化して要素を追加する方法は?

入力時に結果をフィルタリングするために、上部にQTableView埋め込まれたサブクラスを作成しようとしています。QLineEdit通常の と同じ API を持つテーブルが必要なので、サブクラス化してandを追加するのQTableViewではなく、サブクラス化したいと考えています。QWidgetQLineEditQTableView

を再実装し、を少し低く開始するようpaintEvent(QPaintEvent*)に変更し( aQPaintEventの高さ、その下に描画される)、それを に渡すことができると考えましたが、引数は、再描画する必要がある領域を指定するだけであり、再描画する必要はありません。ウィジェットがペイントされる領域。rect()QLineEditQTableView::paintEvent()QPaintEvent

0 投票する
3 に答える
2259 参照

c++ - Qt - QPainter の作成

paintEventプログラムのメソッドを書き直して変更しようとしています。

bgここで私は自分のイメージを変えようとします。しかし、オンラインでエラーが発生しました:QPainter painter(this);

エラー: 変数 'QPainter painter' が初期化されていますが、型は不完全です

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

qt - [Qt]paintEventがQAbstractButtonから派生したカスタムボタンで呼び出されない

「QAbstractbutton」から派生したカスタムボタンを作成しようとしています。paintEventをオーバーライドしました。ただし、私のボタンはウィジェットに表示されません。ボタンでupdate/repaint / showを呼び出しても、paintEventが呼び出されないことがわかります。ここで欠落しているリンクは何でしょうか?

ありがとう!

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

qt - QWidget::paintEvent() が他のウィンドウにホバーされたときに強制的に呼び出す方法は?

問題が発生しました。現在の日付の日付を表示するウィジェットを作成しています。ボタンのようなものですが、QPushButtonクラスから派生したものではありません。からちょうどQWidget。だから私は、、、を再実装enterEvent()しましleaveEvent()た。これらのメソッド内で呼び出すと、ウィジェットは現実的なボタンの動作をします (も再実装されています)。しかし、システムの日付を変更してそのウィジェットを他のウィンドウに合わせると、ウィジェットは古い日付を呼び出して表示しません。マウスをその上に置いたときにのみ、ウィジェットはその内容を再描画します。不要なペイントイベントを避けるために、ホバーイベントで古いコンテンツをペイントするオプションがあると思います。しかし、私はそれを無効にする必要があります。多くの属性 ( enum )を設定しようとしました。しかし、それは役に立ちません。mousePressEvent()mouseReleaseEvent()update()paintEvent()paintEvent()Qt::WidgetAttribute

助けてください(私の下手な英語でごめんなさい)。

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

qt - PyQt子ウィジェットはpaintEventを受け取りません

qtデザイナーでウィジェットを作成し、pyuicを使用してuiファイルをUi_wid_canvasというPythonクラスに変換しました。これは、特別なキャンバスとして使用されることになっています。

Ui_wid_canvasから、クラスMyCanvasを派生させて、paintEvent関数とmoo()などのいくつかのユーティリティ関数を実装します。paintevent内で行うのは、2つの四角形を描画することだけです。次のクラスをアプリケーションとして使用すると、すべてが魅力のように機能します。

ここで、MyCanvasをインスタンス化するアプリケーションTestを作成すると(以下を参照)、TestのpaintEventが呼び出されますが、MyCanvcasのpainteventが呼び出されることはなく、rectsは描画されず、コンソールに「PainteventCanvas」の出力がありません。self.widget.update()またはself.widget.redraw()Test.paintevent()を呼び出すと、painteventはキャッチされません。手動で呼び出すself.widget.paintevent()と、関数は呼び出されますが、ペインターがアクティブになりません。一方、プッシュボタンが表示され、ウィジェットが正しく含まれていることがわかりますが、子ウィジェットによってペイントイベントが呼び出されることはありません。

Qt.WA_PaintOutsidePaintEventを設定することはオプションではありません。これは、MacとWindowsでは機能しないためですが、プラットフォームに依存しないようにしたいと思います。

たくさんのコードを投稿してすみませんが、簡単になると思います。私はそれを最小限に抑えようとしました。誰かがウィジェットMyCanvasをそれ自体にペイントし、このペイントウィジェットをアプリケーションとして機能する別のウィジェットMyTestに含める方法を教えてもらえますか?

0 投票する
3 に答える
1923 参照

.net - System.Windows.Forms.PaintEventArgs名前空間にアクセスせずにWinformを描画するにはどうすればよいですか?

プログラムでこれまでに行ったことをフォーム化すると、winformに何かを描画する唯一の方法はSystem.Windows.Forms.PaintEventArgsを使用することだと思われます。これらの引数またはこの名前空間にアクセスできず、winformにしかアクセスできない場合は、winformにどのように描画しますか(たとえば、長方形のような形状)。

前もって感謝します。

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

python - PySideでpaintEventをオーバーライドする際の問題

QPlainTextEditクラスをサブクラス化し、paintEvent関数をオーバーライドして、行番号領域を描画できるようにしました。

プログラムを実行すると、次の出力が得られます。

私の推測では、関数は適切にオーバーライドされていませんが、実際にはわかりません。誰かが私がどこで間違っているのか教えてもらえますか?

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

c++ - QtウィジェットはいつpaintEventを取得しますか?

ウィジェットがペイント イベントを受け取るのはどのような場合で、OS によってどのように変化するのか疑問に思っています。

paintEvent の Qt ドキュメントには、次のように書かれています

ペイント イベントは、ウィジェットのすべてまたは一部を再描画する要求です。これは、次のいずれかの理由で発生する可能性があります。

repaint() または update() が呼び出された、

ウィジェットが隠されていましたが、今では明らかになりました。または

他の多くの理由。

これまでのところ、paintEvent にいくつかのトレースを入れましたが、

これが私が見つけたものです(少なくともWindows 7では):

paintEvent は、ウィジェットがフォーカスを失った/獲得したときに呼び出されます。別のウィジェットがウィジェットを通過するとき、ペイント イベントは呼び出されません。Windows 7 の合成が原因かどうかはわかりません。paintEvent は、最小化されたウィンドウが復元されたときにも呼び出されます。サイズ変更時に paintEvent が呼び出されます。

動作はOSに依存していますか?

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

qt - Qt 4.7 - paintEvent を使用して動的フィードバックで 2 点線を描画する

だから私は2点の間に線を引こうとしています。マウスの左クリックで線が開始され、マウスの動きに合わせて線を動的に描画したいと思います (線のプレビューのように)。もう一度マウスを左クリックすると、線が永続的に描画されます。QPaintEvents については他にも多くの投稿があることを知っており、使用されているテクニックのいくつかを組み合わせましたが、何らかの理由でキャンバスに何も描画されていません。以下はコードです:

どんな助けでも大歓迎です!ありがとう!ジョシュ

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

qt - MainWindow 内で widget の paint イベントをオーバーライドする

手動でペイントしたいウィジェット コンテナがあります。ただし、GUI の MainWindow クラス内にあります。

特定の QWidget のペイント イベントに登録する方法はありますか?