0

tableWidgetが入力されており、ダブルクリックで行ヘッダーを選択し、行ヘッダーのテキストを取得して、textEditに入力したいと思います。

私は持っています:

        connect(ui->tableWidget, SIGNAL(itemDoubleClicked(QTableWidget*)),ui->textEdit, SLOT(on_tableWidget_itemDoubleClicked(QTableWidgetItem*)));

void on_tableWidget_itemDoubleClicked(QTableWidgetItem *item)
{
    QString selectedName = item->text();
    ui->textEdit->setText(selectedName);
}

コードを実行してもフォーカスが変わらないだけでなく、テキストエディットにも何も起こりません...ここで何かが足りませんか?

4

2 に答える 2

2

接続は次のようになります

connect(ui->tableWidget, SIGNAL(itemDoubleClicked(QTableWidget*)),
        this, SLOT(on_tableWidget_itemDoubleClicked(QTableWidgetItem*)));

スロットがクラスで定義されている場合。

于 2011-11-01T14:57:12.297 に答える
0

スロット名の形式( " on_widgetName_signalName")をtableWidget使用し、は生成されたUIに属しているため、ui->setupUi(this);コンストラクターにある行によって接続が自動的に行われる必要があります。

したがって、connect呼び出しを削除することはできますが、それがon_tableWidget_itemDoubleClickedスロットとして宣言されていること、およびマクロQ_OBJECTがクラス定義に含まれていることを確認する必要があります。

于 2011-11-02T20:46:10.977 に答える