0
別のクラスで宣言されているlineEditの信号とスロットを作るにはどうすればよいですか? LineEditはPeakdetechtionクラスで宣言されています。私はpeaksettingformで信号とスロットを作りたいのですが、どうすればいいですか?異なるクラスのlineEditの接続文を書く方法
別のクラスで宣言されているlineEditの信号とスロットを作るにはどうすればよいですか? LineEditはPeakdetechtionクラスで宣言されています。私はpeaksettingformで信号とスロットを作りたいのですが、どうすればいいですか?異なるクラスのlineEditの接続文を書く方法
にQLineEditが外部からアクセスできるように持っているのいずれか(パブリックまたは取得)またははあなたが興味のある信号を転送する必要があります。
アクセス可能バージョン(不完全と非常に汚い)
class Peakdetechtion { // horrible name
public:
QLineEdit* getLineEdit() { return m_lineEdit; } // don't do it
private:
QLineEdit* m_lineEdit;
};
class Peaksettingform : public QObject { //horrible name
Q_OBJECT
public:
Peaksettingform(Peakdetechtion *p, QObject *parent = 0)
: QObject(parent) {
// you can do this from outside and replace 'this' with a pointer to a Peaksettingform object
connect(p->getLineEdit(), SIGNAL(textChanged(const QString &)), this, SLOT(handleText(const QString &)));
}
public slots:
void handleText(const QString &);
};
信号転送
class Peakdetechtion : public QObject { // horrible name
Q_OBJECT
public:
Peakdetechtion() {
m_lineEdit = new QLineEdit(); // should have a parent but i am lazy
connect(m_lineEdit, SIGNAL(textChanged(const QString&)), this, SIGNAL(leTextChanged(const QString&)));
}
signals:
void leTextChanged(const QString &);
private:
QLineEdit* m_lineEdit;
};
class Peaksettingform : public QObject { //horrible name
Q_OBJECT
public:
Peaksettingform(Peakdetechtion *p, QObject *parent = 0)
: QObject(parent) {
// you can do this from outside and replace 'this' with a pointer to a Peaksettingform object
connect(p, SIGNAL(leTextChanged(const QString &)), this, SLOT(handleText(const QString &)));
}
public slots:
void handleText(const QString &);
};
アクセシブルなバージョンではありません。 。 。なぜあなたは理解できますか? @Lifeisabug –
@ GiridhariLal - "ウォークリングではない"とはどういう意味ですか?問題の症状を説明してください。 –
私が提供したコードは、明らかにコンパイルできません。それは単にあなたがその問題にどのようにアプローチできるかのデモンストレーションでした。外部からアクセスできる必要があるメニュアをライン編集に直接接続するか、必要な信号と外部の転送信号に転送する必要があります。 – Lifeisabug