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