所以即時製作這個貨幣計算器,我遇到了一些麻煩,比較我的組合框和存儲貨幣匯率的地圖中選擇的值。比較Map鍵和comboBox.currentText()時應用程序崩潰;
(我不會張貼在地圖插入物和組合框的代碼更speciffic,假設他們arent空。)
的.cpp
class Calculator : public QObject
{
Q_OBJECT
public:
explicit Calculator(QMap <QString, double> &my_map,QObject *parent = 0);
void get_value();
private:
Ui::MainWindow *ui;
QMap <QString, double> *map_pointer;
signals:
public slots:
};
.H
Calculator::Calculator(QMap<QString, double> &my_map, QObject *parent) :
QObject(parent)
{
map_pointer=&my_map;
}
void Calculator::get_value()
{
QMap<QString, double>::Iterator i;
qDebug()<< "im in get_value";
for(i=map_pointer->begin(); i !=map_pointer->end();i++)
if(i.key()==ui.>comboBox->currentText())
qDebug()<<i.key() << ": " << i.value();
}
該應用if語句與「意外完成」崩潰
和我的主要
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMap<QString,double> currency_map;
MainWindow w(currency_map);
w.show();
Calculator c(currency_map);
c.get_value();
return a.exec();
}
在你的代碼都出現了,你不計算器分配'ui'。如果它沒有發佈,你沒有發佈,它沒有初始化,並導致崩潰 –
你是對的,但如何創造者提供我comboBoxes和所有其他的東西,我在我的主窗口中,當我做ui-> 以及你如何建議我將主窗口變量分配給* ui? – user3219947