void Viewer::addPaths(const QStringList &paths) { m_paths.append(paths); } //打开 void Viewer::openFile(QString fileName) { m_image.load(fileName); m_pixmap = QPixmap::fromImage(m_image.scaled(size(),Qt::KeepAspectRatio)); setPixmap(m_pixmap); setScaledContents(true); }如何将openfile的路径转化之后传递给addpaths
时间: 2024-02-12 19:06:19 浏览: 130
你可以在 openFile 函数中添加一个信号,当文件打开时发出该信号并将文件路径传递给槽函数。然后,你可以在槽函数中将文件路径添加到 m_paths 中。具体实现如下:
1.在 Viewer 类的头文件中声明一个信号 `fileOpened(QString filePath)`。
```cpp
class Viewer : public QLabel {
Q_OBJECT
public:
explicit Viewer(QWidget *parent = nullptr);
void openFile(QString fileName);
void addPaths(const QStringList &paths);
signals:
void fileOpened(QString filePath); // 声明文件打开信号
private:
QImage m_image;
QPixmap m_pixmap;
QStringList m_paths;
};
```
2.在 openFile 函数中,在文件打开后发出 `fileOpened` 信号并传递文件路径参数。
```cpp
void Viewer::openFile(QString fileName) {
m_image.load(fileName);
m_pixmap = QPixmap::fromImage(m_image.scaled(size(),Qt::KeepAspectRatio));
setPixmap(m_pixmap);
setScaledContents(true);
// 发出文件打开信号
emit fileOpened(fileName);
}
```
3.在 Viewer 类的构造函数中连接 `fileOpened` 信号到槽函数中,将文件路径添加到 m_paths 中。
```cpp
Viewer::Viewer(QWidget *parent)
: QLabel(parent)
{
connect(this, &Viewer::fileOpened, this, &Viewer::addPaths);
}
```
4.在 addPaths 槽函数中,将传递的文件路径参数添加到 m_paths 中。
```cpp
void Viewer::addPaths(QString filePath) {
m_paths.append(filePath);
}
```
这样,在调用 openFile 函数打开文件时,会发出 `fileOpened` 信号并将文件路径传递给槽函数 addPaths。在槽函数中,将文件路径添加到 m_paths 中。
阅读全文