問題タブ [qtablewidgetitem]
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.
python - その要素を知っている QTableWidget 行のインデックスを取得します
[私は PyQt4 を使用していますが、この Qt4 の問題は Python 固有のものではないと思います。]
私は持っていQTableWidget
ます。各行の最初の列にはボタンがあります。クリックすると、行が削除されます。
行を削除するには、removeRow(int row)
行のインデックスを引数として受け取るメソッドを使用します。信号を接続するとき、その間に変更される可能性があるため、行のインデックスを知ることができません (たとえば、最初の行が削除されると、すべての行のインデックスが変更されます)。
ここで受け入れられた回答は、コールバックに行内の QTableWidgetItem のインスタンスを渡し、削除時にこのアイテムから行番号を取得することを提案しています。
行の要素がQTableWidgetItem
. 要素は、ボタン自体といくつかの ComboBoxes です。
これを回避する方法がわかりません。
私の要素の 1 つを QTableWidgetItem に収めることはできますか? ある種の隠し列に QTableWidgetItem を追加する必要がありますか?
現在の実装ではindexAt(QtGui.qApp.focusWidget())
(上記の質問に対する他の回答を参照) を使用していますが、これは残念な回避策のように見えます。
ボタンをこのようなチェック可能な QTableWidgetItem に置き換えると
行インデックスに戻るために使用できる QTableWidgetItem があります。しかし、ボタンのように「チェック」または「クリック」イベントをキャッチする方法がわかりません。私が見つけたのは のitemClicked
信号QTableWidget
だけですが、他のすべてのウィジェットを除外する必要があります。
私が見逃している明らかな何かがなければなりません。
編集
ここで読んだことから、setItem を使用した QTableWidgetItem と setCellWidget を使用した Button ウィジェットの両方を同じセルに追加できました。これは私にはあまり自然なことではないように思えますが、どうやら機能しているようです (今はテストできません)。
私はそうするだろうと思います。ボタンを追加し、同じセルにダミーの QTableWidgetItem を追加して、行への参照として渡します。
これが意図された方法ですか?
編集 2
またはQTableWidget
、適切なウィジェットではない可能性があります。ここでLayout
提案されているように、を使用する必要があります。
python - 複数の QCheckBox を QTableWidget の奇数行に挿入する
160行のテーブルを作成しようとしていて、QCheckBox
奇数行ごとに、特に列10に挿入しています。問題は、80行を作成する必要がQCheckBox
あることです(各行に1つずつ、ユーザー)...
QCheckBox
私がしなければならない 9 つのプロジェクト用に80 個のオブジェクトを 1 つずつ作成するのはナンセンスです。
ループでそれを行う方法はありますか?何も考えられず、答えを探しても何も見つかりませんでした。
c++ - Qt - 複数の QtableWidget でリンクされたアイテムを共有できますか
Qt 複数の tableWidgets がリンクされたアイテムを共有する
こんにちは、Qt には QMainWindow -> centralWidget (QWidget) -> QtabWidget -> 10 個のタブ (QWidgets) -> それぞれに最大 26 個の QtableWidget があります。
アイデアは、これの代わりに:
少ないコードですべての tableWidget に毎回列を追加できる方法はありますか?
もちろん、そこにはありません。実際に知りたいのは、実際には同じアイテムである各アイテムの一部をリンクする方法があることですが、たとえばプレイヤー名が行ごとに同じであるなど、それぞれで繰り返されますしたがって、ユーザーが 1 つの名前を編集した場合は、すべての tableWidget の同じ行で名前を変更する必要があります。
何らかの方法でそれらをリンクする方法はありますか、またはアイテムの変更をシグナルとしてチェックする唯一の方法はありますか?
また、1 つの tableWidget で列ごとに並べ替えた場合、行の新しい配置はすべての tableWidget で同じにする必要があります。
誰でも私を正しい方向に向けることができますか?私が持っている唯一の考えは、ItemChangedの信号を使用することです. より良い方法はありませんか?
お時間をいただきありがとうございます。
c++ - ファイルからQTableウィジェットアイテムにデータを入れる方法は?
Qtable と input.txt というファイルがあります
input.txt から読み取って Qtable ウィジェットにデータを表示しようとしています。
テーブルには 9 行と 9 列があります。QTable ウィジェット アイテムを作成して、for ループを使用してデータを入れてみました。しかし、それを機能させることができませんでした。
これが私が試したコードです
}
これは、各セルに数字を追加できるかどうかを確認するための単なるデモでした。
pyqt4 - PyQt:アイテムの編集中にQTableWidgetItemの内容を取得する方法は?
最後に、私が解決しようとしている問題は、誰かがフィールドを編集してQTableWidget
から [OK] をクリックしてから、Enter キーを押すか、テーブル セルからフォーカスを移動することです。
「コミット」されていないため、デフォルトの動作はこのセルを無視するようです。
簡単な例を次に示します。
この例でa
は、最初のセルに入力するb
と、2 番目のセルに入力されます。最初にエンターキーを押したり、フォーカスを変更したりせずに「OK」をクリックすると、次のように表示されます。
{'a': ''}
見たいとき:
{'a': 'b'}
私が持っていたアイデアは、セルを QLineEdit のように扱い、textChanged を使用してユーザーがいつ入力したかを確認し、次に、キーストロークごとにセルの setItem を舞台裏で確認することでした-セル内のデータは常に最新。QStyledItemDelegate
QLineEdit (textChanged シグナルを持つ) のように編集できるように (以下)を使用してこれを試みました。デリゲート自体から変更を出力できるため、これはある程度機能しますが、textChanged シグナルが有用な場所で取得できないようです (つまり、ダイアログはこれを認識しないため、テーブル内の setItem)。
しかし、それはうまくいきません。
また、QLineEdit の textChanged が発生したときに commitData シグナルを発行しようとしましたが、これも役に立ちませんでした。
セルがまだ編集されている間にセルの内容を取得する方法はありますか?