問題タブ [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.
qt - QT Designer によって作成されたウィジェットの Qt ペイント
を上書きせずにウィジェットにペイントするにはどうすればよいですかpaintEvent
。
Qt Designer によって生成された別のウィジェット内にあるウィジェットにペイントしたいので、上書きできませんpaintEvent
。
私はこのように直接ペイントしようとしました:
しかし、Qtは、QPainDevice
が0またはこのようなものであると教えてくれます。
ペインターを作成して同じ例を試し、 (ウィジェット)begin()
でメソッドを呼び出しましたが、同じ問題がありました。QPaintDevice
Qt バージョン: 4.8.6。
ios - Q:PaintEvent IOS ピクセル化アーク
だから私はQ::Painter
いくつかの円を描く を持っています。Windows では円が完全に描画されますが、iOS ではピクセル化されます。
これはピクセル化されていない画像です:
誰かがこの問題で私を助けることができれば、私は非常に素晴らしいです. コードはまったく同じですが、iOS では不適切にレンダリングされます ...
これが私のコードです:
colors - qt4 - qlineedit でテキスト カーソルの色を変更しますか?
qlineedit をサブクラス化し、デフォルトのテキストを持つカスタム行編集を作成しました。デフォルトのテキストは、ユーザーがテキストを書き始めるまでグレー表示されます。また、ライン編集にはタイムマスク入力があります。23:59:59 の範囲の入力のみを受け入れます。
問題は、行編集が空で、デフォルトのテキストが灰色で表示されている場合、カーソルも灰色です。デフォルトのテキストが灰色のときにカーソルの色を黒に変更する方法を知りたいです。
paintevent をオーバーライドしようとしました。qlineedit のソース コードを見て、QLineControl::DrawCursor が paintevent でカーソルを描画する役割を果たしていることを確認しました。しかし、ペンの色を変更してカーソルの色に影響を与える方法がわかりません。それを行う方法についてのアイデアはありますか?tnx。
c++ - update を複数回呼び出すと Qt アプリケーションがクラッシュする
を使用してフラクタルを描画できるアプリケーションがありますQPainter
。paintEvent
機能は次のとおりです。
if
最後の部分がコメントアウトされているこのバージョンでは、問題なく動作するようです。そうしないと、実行中 ( m_isFinished
true になるまで) フラクタルを継続的に描画し始めますが、開始から 1 秒後にクラッシュします。このdrawFractal
関数は、別のスレッドで実行されている computeFractal と呼ばれる別の関数によって継続的に計算された結果に基づいて、フラクタルの描画のみを行います。ブール変数は、このm_isFinished
関数の開始時に false に設定され、最後に true に設定されます。
私はこれについて本当に混乱しています。誰かがクラッシュの原因を教えてもらえますか? おそらくcomputeFractalが別のスレッドで実行されているためでしょうか? ( QtConcurrent::run(this -> m_simulationwindow, &SimulationWindow::computeFractal);
)
編集:
drawTrajectory
この場合、まったく呼び出されません。
python - PyQt で QTextEdit に垂直線を描画する
QTextEdit ウィジェットを含む GUI を開発しようとしています。GUI が読み込まれると、データが固定幅の列にあるファイルからデータが取り込まれます。
ユーザーが QTextEdit ウィジェットのさまざまなポイントをクリックして、新しい列の開始位置をマークできるようにしたいのですが、それらの位置でウィジェットに垂直線を描画して列を表示したいと考えています。
私の GUI init () メソッドには、テキスト ウィジェットから paintEvent をインターセプトする次の行がありました。
そして、私は handlePaintEvent() メソッドを持っていました:
しかし、コードを実行しようとすると、ペインターがアクティブでないという QPainter エラーが発生し始めました。
次に、QTextEdit をサブクラス化し、上記と基本的に同じコードをサブクラスの paintEvent() メソッドに追加して、別の方向を試みました。ただし、まだエラーが発生しています。
次に、paintEvent() メソッドにpainter.begin(self)
andを追加しようとしましたが、それでも満足できませんでした。painter.end()
また、カスタム paintEvent() メソッドを追加したため、ウィジェットに最初に表示されていたテキストが表示されなくなりました。
私はここで本当にばかげたことをしていますか、それともこれを行うためのより良い/簡単な方法はありますか?
ありがとう。
c++ - ペイント イベントを優先的に投稿するにはどうすればよいですか?
Qt を使用して作成しているプログラムでパフォーマンスの問題が発生しています。この問題は、16 ミリ秒ごとに更新する多数のビットマップに起因します。それらをすべて更新するには、約 300 ミリ秒かかります。私はこれに満足していませんが、より大きな問題は、これが UI の残りの部分で作成する遅延です。膨大な数の paintEvents が残りの UI のイベント ループをブロックしないように、更新の優先順位を下げたいと思っていますが、問題があります。update()
and にrepaint()
は優先度パラメーターがないため、 を使用してみましQCoreApplication::postEvent()
たが、次のエラー メッセージが表示されるため、この方法で paintEvent を呼び出すことは許可されていないようです:
これが私の問題の原因ですQLabels
。16ミリ秒ごとに一度に更新する240の配列です。
編集:これは、プログラムが何をするか、およびQLabelsが非常に重要である理由の例の画像です(私のプログラムは左側のウィンドウです):