0
我想我有一些麻煩得到這個權利:我有一個QMainWindow類。在我的程序中,我想創建其他類,例如輸入處理,計算...QT類之間的連接
現在首先從我的主窗口類,我想發送到我的文件選擇器(文件處理程序)類打開文件對話框,從而在內部保存選定的文件。不幸的是我有麻煩連接插槽。
主窗口:
MA_FEX::MA_FEX(QWidget *parent)
: QMainWindow(parent), fileSelector(this)
{
ui.setupUi(this);
//this works:
fileSelector.openFiles(this);
//this doesn't:
connect(ui.actionOpenFiles, SIGNAL(triggered()), fileSelector, SLOT(openFiles(this)));
}
MA_FEX::~MA_FEX()
{
}
主窗口標題:
class MA_FEX : public QMainWindow
{
Q_OBJECT
public:
MA_FEX(QWidget *parent = 0);
~MA_FEX();
private:
Ui::MA_FEXClass ui;
FileSelection fileSelector;
};
文件協調類:
FileSelection::FileSelection(QObject *parent)
: QObject(parent)
{
}
FileSelection::~FileSelection()
{
}
void FileSelection::openFiles(QWidget *parent){
QStringList files = QFileDialog::getOpenFileNames(
parent,
"Select one or more files to open",
"c:",
"Images (*.csv *.txt)");
}
頭:
class FileSelection : public QObject
{
Q_OBJECT
public:
FileSelection(QObject *parent);
~FileSelection();
public slots:
void openFiles(QWidget *parent);
private:
};
我錯過了什麼嗎?執行我得到連接線上的錯誤C2664,說參數3'FileSelection'不能轉換爲'const QObject'。
感謝約翰尼和庫巴,我使用QT5和C++ 11作爲我確實想避免纏繞槽溶液選擇的第一個版本。 – refuzee