問題タブ [qlistwidgetitem]
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.
c++ - QListWidget::selectedItems() のインデックスを取得するにはどうすればよいですか?
QListWidget
選択したアイテムのインデックスを取得する必要があります。(リスト内の項目を値で操作できますが、std::vector
リスト内の各項目のオブジェクトがいくつか含まれているため、それらを削除する必要もあります。)機能はありますが、indexFromItem
保護されている(?)ので、できます使用しないでください。
何か案は?
python - リスト ウィジェット アイテム データ オブジェクトのスロットが呼び出されない (PyQt 5.7)
PyQt 5.5 では次のコードが機能しましたが、PyQt 5.7 では機能しませんでした (リストには「新しい例」ではなく「例」が表示され、実際にデバッグするとスロットがヒットしないことが示されます)。誰がそれの何が悪いのか知っていますか:
おそらくこれが行われるはずの方法ではありませんが、PyQt 5.5 では、PyQt 5.5 のバグ (QListWidgetItem から単純に派生させることができず、アイテムをシグナルに直接接続できなかった) の許容できる回避策でした。
回答後の編集
Ekhumoro が回答した後、私は厳しい現実に直面しました。これにより、投稿されたサンプル コードは修正されましたが、私のアプリでは修正されませんでした。そこで再訪しました。実際のアプリでは、アイテムは後で作成され、名前変更のシグナルは後で発行されます。したがって、私の問題を再現するためのより良い最小限の例は次のとおりです。
これはアサーションに失敗します。データが強い参照によって保持されている場合、アサーションはパスします (init の最後の行のコメントを外します)。そのため、setData() は 2 番目の引数への弱い参照のみを保持する可能性が高く、データがどこかに保存されていない限り、init の最後にデータが削除されます。
python - ホバー時の PyQt でスタイルを別のウィジェットに設定
PyQtでアプリを作っています。私はQListWidget
アイテムを持っています。で2行のテキストを表示したいので、それらにウィジェットを設定しましたsetItemWidget
。ウィジェットには、テキスト用と日付用の 2 つのラベルが含まれています。
アイテムにカーソルを合わせたときに、ウィジェットの両方のラベルにStyleSheetを設定するにはどうすればよいですか? ラベル自体に設定できますが、両方を変更する必要があります。別のウィジェットにカーソルを合わせると、別のウィジェットに影響を与えることはできますか?
ありがとうございました。
python - qlistwidget の dropEvent から作成されたアイテムを取得する方法
そのため、ドラッグ アンド ドロップを使用して、選択したアイテムをある QListWidget から別のアイテムにコピーしようとしています。
とにかく、item.setData を使用してシリアル化されたパラメーターを渡すことで、必要なものをハックすることができますが、2 番目の listWidget で作成される新しいアイテムのハンドルを取得する簡単な方法がわかりません。
2 番目の QListWidget のすべてのアイテムを見て、どのアイテムが作成されたかをどうにかして判断できると思いますが、ドロップ イベントによってどのアイテムが作成されているかを知るための簡単な方法があるはずです。
python - PyQtは、現在QListWidgetに表示されているQListWidgetItemsのyピクセル座標を導出します
以下のスクリーンショットでは、QListWidget
多数の がランダムに取り込まれQListWIdgetItems
、wordWrap
有効になってscrollBar
おり、右側に が表示されています (選択された項目に注意してください)。
私がQListWidgetItem
求めているのは、 に対する各 (目に見える) の y 位置ですQListWidget.viewport()
。
QListWidget.viewport().geometry()
ここまでで、行の高さに相当するピクセル距離 (ここでは 29 ピクセル) での y 範囲を移動し、 に を適用しitemAt(0,y)
て、QListWidget
フォント アイテムがまだリストにない場合はリストに追加することで、これを実現しています。それ。
コードは次のようなものです:
この方法は遅く、冗長なクエリを実行するため、私にはあまりエレガントではないようです。
すべての y 座標を見つけるスマートな方法はありますか?
qt - QListWidget マウスオーバー ハイライトを無効にする
テキストのみを含むが背景色が異なるいくつかの QListWidgetItems を持つ QListWidget があります。デフォルトでは、アイテムの上にマウスを置くと、アイテムが青いバーで強調表示されます。強調表示を無効にするにはどうすればよいですか?
私が使用するコード
前もって感謝します。
spacer
は曜日の名前が入った灰色のアイテムです
編集: 画像リンクを追加 (スニッピング ツール ツールはマウスを非表示にし、6 番目の項目を強調表示)