問題タブ [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 に答える
2987 参照

python - PyQT: 愚かな QPainter.drawEllipse

コードを見つめる時間が長ければ長いほど、理解できなくなりますが、面白くなります。QPainter が円を描画する場合もあれば、描画しない場合もあります。

私の問題は、成功した場合、QPainterが描画しないことです。一方、成功しなかった場合引き分けになります。私が実際に達成したいのは、状態に応じて色を変えることです。このやや醜いコードは説明用です。QP.begin() をループの外側に移動するか、if 句の外側の最後に単一の drawEllipse() を配置しても、違いはありません。

楕円が実際に描かれている場合とそうでない場合がある理由を教えてもらえますか?

出力は次のとおりです。

...
未未 まだ

未 まだ 成功 成功 成功 成功 成功 ...







楕円が以前に描かれたかどうかは問題ではありません。「まだ」の場合に drawEllipse() をコメントすると、円は描画されません。

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

qt - QWidgetでアルファ透明マスクを使用していますか?

QWidgetにアルファ透明マスクを割り当てることは可能ですか?を使ってマスクを設定する方法は知っていますsetMaskが、白黒マスクしかサポートしていないようです。真のアルファチャネルをサポートすることは可能ですか?

つまり、現在私は次のようなPNGを持っています:

ここに画像の説明を入力してください

そしてこのようなウィジェット:

ここに画像の説明を入力してください

PNGをQPixmapにロードし、それをマスクとして設定すると、次のようになります(エッジに注意してください)。

ここに画像の説明を入力してください

しかし、私はこれを取得したいと思います(滑らかなエッジ):

ここに画像の説明を入力してください

それを行う方法はありますか?

注:ウィジェットでより複雑な描画を行っていますが、これはマスク領域に制限する必要があるため、PNGをウィジェットの背景画像として単純に設定することはできません。

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

qt - QT、ハードウェア アクセラレーション (gpu) を使用して raw 画像を jpg に変換

Raw 画像バッファを jpg 画像バッファに変換する必要があります。

現時点では、次の方法でこの操作を行います。

正常に動作しますが、CPU 負荷が高すぎます (毎秒この操作を行うスレッドが多数あります)。Qt のドキュメントを読んで、この記事を見つけました: Hardware Acceleration &amped Embedded Platforms。私が理解していれば、QPainter クラスを使用して gpu 操作を実行できます...このクラスを使用してこの変換 (raw から jpg へ) を行うことは可能ですか? (またはハードウェアアクセラレーション(gpu)を使用する別の同様のQtクラス)!!

私のアプリケーションは、プラットフォームに依存しない必要があります。

全然サンクス。

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

python - QRect の幅と高さはピクセル単位ですか?

PyQt4 GUI では、複数の QPainter Pixmap を慎重に配置する必要があります。
新しい Pixmap の座標と高さと幅を指定するときは、すべての単位をピクセルにする必要があります。
(そうしないと、Gui が自分とは異なる解像度の画面で台無しになります)。

ピックスマップを配置するときは、DrawPixmap( QRect , QPixmap ) 関数を使用します。
配置する必要のある Pixmap は、4 つの整数のタプルの QRects のリストにあり、これは、Pixmap の左上隅 (px 単位) と Pixmap の右下隅 (px 単位) の座標を指定します。
例:
ブロック = [QtCore.QRect(x1、y1、x2、y2) など]。

悲しいことに、タプルの最後の 2 つの数値は、DrawPixmap( QRect, QPixmap) に渡されたときに幅と高さとして解釈され、単位 (cm) です。

私の質問...
Pixmaps の寸法を完全にピクセル単位で指定する方法はありますか?
(ピクセルの幅と高さ、または寸法ボックスの角の 2 つのピクセル座標を渡すことによって)。

QPainter または QRect クラス参照で方法が見つかりません。
ありがとう!


仕様:
Python 2.7
PyQt4
Windows 7 32bit
IDLE

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

c++ - バックグラウンドでのQtdrawRect

スライダーの背景をペイントしたい。これを試してみましたが、スライダー全体が色で覆われています。これはQSliderの継承されたクラスにあります

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

c++ - QPainterを使用したタイルレンダリング

タイルレンダリングシステムを実装しています(GL_MAX_VIEWPORT_DIMS-limitationを回避するため)。QWidget-overlaysをサポートする必要があるため、ウィジェットのタイルレンダリングも実装する必要があります。計画は、正しい変換を使用してを作成し、「変換された」を使用してQPainter呼び出すことによってこれを行うことです。QWidget::renderQPainter

これを行うためのテストコードがいくつかあります。

ボタンの4分の1が各タイルにレンダリングされることを期待しますが、結果はまったく異なります。

タイル0 タイル2
タイル1 タイル3

上記のタイル番号は次のとおりです。

0 2
1 3

QPainterを正しく設定するにはどうすればよいですか(または必要なものを実現するには)?

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

qt - QPainter :: rotateは、描画されたテキストのアンチエイリアスを無効にします

私はQPainter::setRenderHint(QPainter::Antialiasing, true)Qtに、私が行うすべての描画(この場合は)で描画されたテキストをアンチエイリアス処理するように指示するために使用しますdrawText()

これは正常に機能し、描画しているピックスマップを回転させたいまで、テキストは見栄えがします。

(QPainterを反時計回りに90度回転し、表示に戻すには)

toを呼び出すとrotate()、描画されたテキストのアンチエイリアスが無効になっているようです。テキストは正しい回転で描画されますが、アンチエイリアスは使用されません。他のものは影響を受けていないように見えます-たとえばdrawLine()、それでもうまくアンチエイリアスされた線を描画します。

私が間違っていることについて何か考えはありますか?

編集:当然のことながら、パスにテキストを追加してからそのパスを埋めると、アンチエイリアス処理された回転したテキストが得られます。ただし、可能であればこのルートは避けたいと思います。

編集(再度):使用QFont::setStyleStrategy(QFont::PreferAntialias)しているフォントで使用してみましたが、効果がありません。ただし、さらに実験を重ねると、Arialのような基本フォントは回転してもアンチエイリアス処理されたテキストが生成されますが、私のカスタムフォント(興味のある人はSwiss721 BlkCn BT)は生成されません。さらに、この問題はWindows 7に存在しますが、Ubuntuで実行している場合は同じ問題は発生しません。このFAQの記事は、Qtがフォントのアンチエイリアスを処理するためにホストOSを参照していることを示唆しているようです。したがって、この特定のフォント(Arialと同様にTrueType)のレンダリングを処理する際にWindowsでどのような問題が発生する可能性がありますか?

編集(前回、約束します):フォントサイズを16pt以上に上げると、問題が解決します。問題は私の特定のフォントを16pt未満にレンダリングすることにあるように思われます-おそらく上記のブログ記事で言及されたものと関係がありますか?:

Windows 2000では、フォントは通常、テキストをより鮮明で読みやすくするために、特定の範囲(たとえば、サイズ8〜16)内でアンチエイリアス処理されません。

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

c++ - Qt 初心者: QPainter ウィジェットがレンダリングされない

私は Qt の経験があまりなく、使用に問題がありQPainterます。QVector多数のポイントを取り、 ofを作成し、QPointsこのベクトルを使用してポリゴンを描画する単純なグラフ ウィジェットを作成しようとしています。ただし、私の実装では現在何も表示されていません。ウィジェットが占有するはずの空きスペースが表示されているので、ウィジェットをウィンドウに正しく追加したことはほぼ確実です。これにより、問題はグラフ ウィジェットにあると思われます。任意の支援をいただければ幸いです。

ヘッダ:

ソース:

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

python - 日付セルに色を付けようとしている問題

QT Designer で作成され、pyuic 4 で変換されたカレンダーを使用して、選択後に日付セルの色を変更しようとすると、問題が発生します。

これまでのところ、セルまたはテーブル/ツリーウィジェットの行の再色付けについて同様の質問を見てきましたが、これらの例は、コードでインスタンス化する前にベース QCalendarWidget または Tree ウィジェットクラスを拡張することから生じています...一方、私は QT Designer に配置されたカレンダーを使用していますpyuic を介して変換され、変換された Python スクリプトでインスタンス化されたウィジェット。

QCalendarWidget の paintCell 関数を使用して日付選択の色を変更しようとしているウィンドウのメイン ファイルの例を次に示します。

puic に変換された Qt Designer スクリプトは次のとおりです。

これを実行すると、次のようなログ メッセージが表示され、何か問題が発生していることがわかります。

私はジュニア レベルのコーダー (.. またはそれ以下) と見なされるかもしれません。Python と Autodesk Maya 内の QT の経験が豊富で、テクニカル アートのバックグラウンドがありますが、おそらくコアのバックグラウンドが十分ではありません。 OOP の原則。しかし、非常に喜んで学びます。