ご覧のとおり (私の以前の質問のいくつかを参照すると)、私は Qt を初めて使用します。「read-from-excel-file-push-to-some-DB」モジュールを作成しています。
プッシュボタンが戻るパスを取得したい main.cpp
つまり、簡単に言うと、私のコードは次のとおりです。
fb_test.h
#ifndef FB_TEST_H
#define FB_TEST_H
#include <QtGui/QMainWindow>
#include "ui_fb_test.h"
class FB_test : public QMainWindow
{
Q_OBJECT
public:
FB_test(QWidget *parent = 0, Qt::WFlags flags = 0);
~FB_test();
private:
Ui::FB_testClass ui;
public slots:
QString on_pushButton_clicked();
};
#endif // FB_TEST_H
fb_test.cpp
#include <QtGui>
#include "fb_test.h"
FB_test::FB_test(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}
FB_test::~FB_test()
{
}
QString FB_test::on_pushButton_clicked()
{
QString path;
path = QFileDialog::getOpenFileName(
this,
"Choose a file to open",
QString::null,
QString::null);
return path;
}
main.cpp
#include <QApplication>
#include <QtGui>
#include <QtSql>
#include <QAxObject>
#include <QAxWidget>
#include "fb_test.h"
bool initExcel(QAxObject* &excelApp);
void getTableHeaders(QAxObject* _worksheet, QAxObject* _excel);
bool readExcelFile(QAxObject* excel, QString& file_path, QString& selected_list);
void getTableHeaders(QAxObject* _worksheet, QAxObject* _excel);
//....
//here's methods above implementation
//....
void excelTest(){
QAxObject* excel;
QString path = QString("C:\\databases\\oilnstuff.xls");//gonna use GUI choose
QString list = QString("list1");
if(initExcel(excel)){
if (readExcelFile(excel, path, list)){
//
}else{
//error output
}
}
excel->dynamicCall("Quit");
delete excel;
}
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QComboBox myCombo;
FB_test *test = new FB_test;
test->show();
excelTest();
return app.exec();
}
ここでは、そのような右側の部分の代わりに
QString path = QString("C:\\databases\\oilnstuff.xls");
QString FB_test::on_pushButton_clicked()
返ってきたものを取得したい。
そんなものどうやって作るの?
UPD:まあ、そのような方法は機能しません
QString mypath = test->ui.pushButton();
PS
ああ、ところで、このモジュールをどのように定義するかはわかりません。たぶん、すべての作業内容をに移動しmain.cpp
、FB_test.cpp
そこに返されるボタンを取得して、呼び出すだけにする必要がありますshow()
かmain.cpp
?