問題タブ [qpainter]

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 に答える
991 参照

c++ - QDirectPainter によるペイント

QDirectPainterクラスを使用してウィジェットをフレームバッファに直接ペイントする方法を詳しく教えてください。実用的な例を提供していただければ、より役に立ちます。

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

qt - Qpainter.rotate() の質問 - qgis

Qt の Qpainter を使用して描画とペイントを行う QuantumGIS をカスタマイズしています...

メッセージキューを介して更新されるポリラインをキャンバスに描画しようとしています..描画は非常にうまくいきます...しかし、更新として取得するポリラインまたはポリゴンオブジェクトには、角度フィールドも含まれていますオブジェクトの回転に使用します。問題は、ポリラインがqpainterによってpainter.rotate()メソッドを使用して描画される直前に線を回転しようとすると、線はうまく回転しますが、描画される線の位置が変わります..そしてズームするたびに変わります. Qgis キャンバスのパン.. painter.rotate() を設定する前に、私はペインターの状態を保存し、描画した後、OpenGL の push/popMatrix 関数に類似していると思われるその状態を再び復元します。Qpainter の保存復元関数は、opengl の push/popMatrix 関数と同様に機能しますか??

コードスニペットは次のとおりです。

助けていただければ幸いです。ありがとう。

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

c++ - QPainterカラーテキスト(構文カラー)

逆アセンブリを表示するために使用したカスタムQtウィジェットがあり、構文の色付けを追加しようとしています。

現在、をQPen単色に設定し、表示したいテキストを作成してQPainter、適切な座標でレンダリングするだけです。

問題は、構文の色付けを追加するための最良のアプローチは何ですか?私はいくつか考えました:

  1. 単純に色を論理ブロックに分割し、それぞれの前にQPenを目的の色に設定することができます。
  2. カラーパレットの変更を表す特別なエスケープ文字を使用して、一度に1文字ずつレンダリングすることができます。
  3. #1を変更してリストを作成し、リストをstd::pair<QColor, QString>繰り返して色を設定し、リストの先頭からアイテムをポップしながらテキストを描画するだけで済みます。
  4. まったく違うもの?

私がリストした3つのアプローチのそれぞれが技術的に機能することは知っていますが、私は非常に効率的な解決策を探しています。このコードはたくさん呼ばれます。また、これは対話型デバッガーであるため、このコードが遅い場合、誰かがすばやくステップまたはトレースすると、目に見える速度低下が見られます。

編集:私は知っていますQSyntaxHighlighterQTextDocument。主な問題は、これらは一般的に私の目的にあまり適していないということです。私はいくつかの柱を持っていますが、それらはすべて仕切りがあり、前後にスライドさせることができます。あなたにアイデアを与えるために、ここに私のデバッガーのスクリーンショットへのリンクがあります。ご覧のとおり、テキストドキュメントとはまったく異なります。実際、それはリストまたはテーブルに近いです。QTextDocumentしかし、通常の描画をやや非現実的にしているカスタム描画がすでにたくさんあります。

編集:私は間違っていました、それはにQTextDocument直接レンダリングできるようQPainterです。私が必要なもののように見えます!

編集QTextDocument:どこで、どのように、またはどのようQTextLayoutに描画するかを制御する方法は不明QPainterです。私はそれらを無駄に使用しようとしました。したがって、誰かが基本的な例を提供できれば、それは非常に役立ちます。

編集:私は最終的に次のようなものを使用して私が望むものを手に入れることができました:

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

c++ - Qt - QPainter の作成

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

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

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

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

python - PyQt4-画像の透かし

PNG画像を開いて、QImageとQPainterを介してテキスト(透かし)を書き込もうとしています。コードは Linux で 100% 動作しますが、Windows XP で実行すると (他のバージョンの Windows ではテストしていません)、テキストがイメージに書き込まれることはありません。try/except ブロックにコードがありますが、エラーは返されません。

Python 2.6.2、PyQt 4.5.4 を使用

何か案は?

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

qt - 背景をクリアせずにQtペイント

QPainterを使用して、ウィンドウにグラフィックを表示しています。残念ながら、関数が呼び出されるたびにpaintEvent()、ウィンドウ全体がクリアされます。クリアせずに描画するにはどうすればよいですか?つまり、前のペイントイベントの内容をそのままにしておくにはどうすればよいですか?

Qt4を使用しています

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

qt - QPainter と QTimer

リアルタイム正弦波の使用方法QPainterと描画方法QTimer

ありがとう。

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

python - Qt Python-ツールボックスのレポート:QTextDocumentとQPainter

ツールボックスを使用して複数のドキュメントレポートを作成したい。2ページは開始するオプションです。フォーマットは問題なく、後で作業できます。

HTMLでQTextDocumentを使用してみましたが、代わりにQPainterを使用しました。

もちろん、テストを行い、物事を単純にするために、Qtで、ドキュメントの上に表示されるレポートタイトルを表示するように依頼します。

ツールボックスのメインフレームの機能は次のとおりです。

... HtmlでQTextDocumentを使用して最初のページを保持する関数:

そしてここでQPainterを使用する関数:

問題は、1ページと2ページのツールボックスが表示されるだけで、1ページと2ページの両方のレポートのタイトルが表示されないことです。

ここに何が欠けていますか?

すべてのコメントと提案は高く評価されています。

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

c++ - begin の呼び出し時に QPainter が失敗する

QsplashScreen に PNG ファイルを描画しようとしています。経由でやろうとしていQPainterます。経由QPainterでやりたいのは、(消えるまで)スムーズに最小化したいからです。繰り返しているだけでは、まったく滑らかに見えません。

をコンストラクタに渡しましたQSplashScreen。e as パラメータを使用QPainterして begin() を呼び出すと、 assert で失敗します。を供給した場合も同様です。QPainterQSplashScreend->activeQpixmap

私は何を間違っていますか?QPainterの begin()を開始するにはどうすればよいですか?

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

c++ - QWidget の paintEvent() 遅延アプリケーション

私は冷蔵庫の磁石の例を研究して修正していますが、最後にやろうとしたことは、背景にあるはずのラベルと線をいくつか描くことでした.

ラベルと線を描画する方法を見つけようとして周りを見回した後、QWidget の paintEvent() をオーバーライドしてそれを実行できることを知りました。しかし、それを行った後、アプリケーションが遅くなり、一見無限ループで paintEvent() が呼び出されていたことが原因であることがわかりました。

それを修正する方法を見つけようとして、ラベルと線を描画するコードをクラスのコンストラクターに移動しました。ただし、アプリケーションに描かれたのはラベルだけです。その後、ラベルはコンストラクターに残しましたが、線を描画するコードを paintEvent() に戻しました。それは機能し、線は期待どおりに描画され、paintEvent() は物をドラッグしたときにのみ呼び出されました。

コンストラクターで線が描画されないのはなぜですか? また、paintEvent() が無限ループに入ったのはなぜですか?

ラベルと線を描画するスニペットは次のとおりです。