Qt从另一个类(ui类)中获取组合框currentIndex

时间:2016-09-24 05:42:27

标签: c++ qt combobox

我想在主Widget中获取组合框的currentIndex,然后将此值发送到另一个类。我试图创建一个函数来返回currentIndex,但是,我总是得到' 0'。有人可以解释我为什么,还是举个例子?另外,我认为这是因为我在另一个类中创建了一个新对象,但是如何才能获得活动的Widget指针?以下是代码:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui { class Widget; }

class Widget : public QWidget {
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    int comboboxText();

private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui; };

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include "database.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

int Widget::comboboxText(){
    return ui->comboBox->currentIndex();
}

void Widget::on_pushButton_clicked()
{
    qDebug() << "from Widget: " << comboboxText();
    Database database;
    database.getIndex();
}

database.h

#ifndef DATABASE_H
#define DATABASE_H

#include <QObject>
#include <QDebug>

class Database : public QObject
{
    Q_OBJECT
public:
    explicit Database(QObject *parent = 0);
    void getIndex();

signals:

public slots:
};

#endif // DATABASE_H

database.cpp

#include "database.h"
#include <widget.h>

Database::Database(QObject *parent) : QObject(parent)
{

}

void Database::getIndex(){
    Widget a;
    qDebug()<< "from database: " << a.comboboxText();

}

0 个答案:

没有答案