web-dev-qa-db-ja.com

信号値をQLineEditからQtのカスタムスロットに接続する方法

QLineEditからのvalueChangedシグナルをプログラムでカスタムスロットに接続する必要があります。 Qt Designerを使用して接続を行い、グラフィカルインターフェイスを使用して接続する方法を知っていますが、信号とスロットについて詳しく知ることができるように、プログラムで接続したいと思います。

これは私が持っているもので、機能しません。

.cppファイル

// constructor
connect(myLineEdit, SIGNAL(valueChanged(static QString)), this, SLOT(customSlot()));

void MainWindow::customSlot()
{
    qDebug()<< "Calling Slot";
}

.hファイル

private slots:
    void customSlot();

ここで何が欠けていますか?

ありがとう

8
fs_tigre

QLineEditにはvalueChangedシグナルがないようですが、textChanged(サポートされているシグナルの完全なリストについてはQtのドキュメントを参照してください)。 connect()関数呼び出しも変更する必要があります。そのはず:

_connect(myLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(customSlot()));
_

スロット内の新しいテキスト値のハンドルが必要な場合は、代わりにcustomSlot(const QString &newValue)として定義できるため、接続は次のようになります。

_connect(myLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(customSlot(const QString &)));
_
20
vahancho