嘗試連接QComboBox
中的新選擇更改以在插槽中使用該選擇的字符串。組合框選擇插槽和Qt中的信號C++
基本上,currentIndexChanged
信號之後,displayData
MAPP將已持有從程序(例如解析器)和另一部分填充,那麼所有的數據,使用在comboBoxChange
組合框中的當前selection
,鍵將給出到displayData
映射,以便以tset
結構的形式獲得所需的值。
下面是我所有的代碼設置和嘗試插槽和連接信號。請幫助理解如何做到這一點。
mainwindow.h
struct tset {
// struct declaration //
QString name;
double height;
}
class MainWindow : public QMainWindow {
private slots:
void comboBoxChange(QMap<QPair<QString, QString>, tset>& displayData, QString selection);
}
mainwindow.cpp
#include "mainwindow.h"
//connect(ui->comboBox, &QComboBox::currentIndexChanged(const QString&), this,&MainWindow:: comboBoxChange(QMap<QPair<QString, QString>, tset>, QString selection));
connect(ui-> comboBox, &QComboBox::currentIndexChanged, this, &MainWindow::on_ comboBoxChange(QMap<QPair<QString, QString>, tset>, QString));
void MainWindow:: comboBoxChange (QMap<QPair<QString, QString>, tset> &displayData, QString s) {
// use the selection string to decide which data to get from the QMap
// from s derive blah and blah2
tset test= = displayData.value(qMakePair(QString{"blah"}, QString{"blah2"}));
qDebug() << test.name << test.height;
}
對於一個啓動信號和SLOT需要有匹配的參數...詳細http://doc.qt.io/qt-5/signalsandslots.html – zeFrenchy
@zeFrenchy讀這個我覺得他們確實有匹配參數.. –
不是按照這個http://doc.qt.io/qt-5/qcombobox.html#currentIndexChanged – zeFrenchy