私が見つけることができるすべてのQComboBoxチュートリアルは、全く同じコードを使用していて、各オプションのアクションを作成する方法を教えていませんでした。選択肢が選択または強調表示されたときに何かを起こす方法について、誰かが私にお勧めしたり、何らかのチュートリアルを提供したりすることはできますか? (好ましくは両方) また、この質問にフラグを立てないでください。私は経験から学ぶ必要があり、QComboBoxのアクションについてはWeb上で何も見つかりません。QComboBoxアクションチュートリアル?
0
A
答えて
0
QComboBoxには、ユーザーが現在のアイテムを変更してアイテムをハイライト表示すると発生するcurrentIndexChanged(int index)
およびhighlighted(int index)
という信号があります。これらのシグナルの引数は、ハイライトされている/現在のアイテムインデックスです。
userData
を使用することができますハイライト - その後、
QVariant QComboBox::itemData(int index, int role = Qt::UserRole)
を使用して対応するスロットでこのバリアントを取得する(
void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())
を参照)各項目に
QVariant
変数を追加し、このデータを分析し、任意のアクションを処理します。
1
QComboBoxのアイテムをQActionにリンクしたいと思うのですか? QComboBoxにアイテムを追加するときは、QVariant(see QComboBox::addItem)の形式でアイテムにカスタムユーザーデータをリンクできます。このユーザーデータには、QComboBox::itemDataを呼び出してアクセスできます。あなたはQComboBoxを介してアクセスすることができQActionへのポインタであることを各ComboBoxアイテムのユーザデータを設定することができますあなたのケースでは
:: ITEMDATA例えば:
class boxTest : public QObject
{
Q_OBJECT
public:
QAction * firstAction;
QAction * secondAction;
QComboBox *box;
boxTest();
protected slots:
void boxCurrentIndexChanged(int);
};
boxTest::boxTest()
{
firstAction = new QAction(this);
firstAction->setText("first action");
secondAction = new QAction(this);
secondAction->setText("second action");
box = new QComboBox(this);
box->addItem(firstAction->text(), QVariant::fromValue(firstAction)); //add actions
box->addItem(secondAction->text(), QVariant::fromValue(secondAction));
connect(box, SIGNAL(currentIndexChanged(int)), this, boxCurrentIndexChanged(int)));
}
void boxTest::boxCurrentIndexChanged(int index)
{
QAction * selectedAction = box->itemData(index, Qt::UserRole).value<QAction *>();
if (selectedAction)
{
selectedAction->trigger(); //do stuff with your action
}
}
関連する問題
- 1. QTreeView-cellのQComboBox
- 2. QComboBoxの実装
- 3. QTableWidgetのPyQt5 QComboBox
- 4. QComboBox setCurrentIndex by text
- 5. QComboBoxポップアップのEventFilter
- 6. PyQt QTableView with QComboBox
- 7. QComboBox AbstractItemView :: item
- 8. QComboBox tickのスタイルシートコントロール?
- 9. QTreeWidgetItem内のQComboBox
- 10. PyQT QTreeview + QPushButton/QComboboxシグナル
- 11. PyQt QComboBoxの右クリックメニュー
- 12. QComboBoxのドロップダウン位置
- 13. Python Pyqt QComboBoxの表示オプション
- 14. QcomboBoxマルチスロット接続のPYQT QpushButton
- 15. QTableviewのヘッダーにあるQComboBox
- 16. QComboBoxの表示高さ
- 17. QTableWidget動的行付きQComboBox
- 18. QComboBoxは関係なく、アイテム
- 19. QT QComboBox setviewコマンドがsetCurrentIndex
- 20. QComboBoxでNULLをサポートしています
- 21. のQPushButtonとダイナミックウィジェット一覧、QComboBox QCheckbox
- 22. 無効QSpinBox QComboBoxから一定値を
- 23. QComboBoxで水平スクロールを許可する
- 24. QTableViewをQComboBoxに追加する
- 25. 別のユーザーとの対話:PyQtは、QComboBox
- 26. QComboBox内でチェックボックスを切り替える
- 27. QComboBoxモデルをnoneに設定する
- 28. QComboBoxの複数のディレクトリ選択
- 29. QComboBoxのホバースタイルを変更する
- 30. QTableViewのセルにQComboBoxを常に表示
することができますこれに関するすべてのソースコードを提供していますか?ソースコードを選択して情報ボックスであるメッセージボックスを開き、もう1つのオプションで警告が表示されるようにすることはできますか?ありがとう! –