@arama92

Как дать команду кнопке?

Как дать кнопке QDialogButtonBox::Okкоманду? Хотя бы на закрытие
file.h
#ifndef FILE_H
#define FILE_H

#include <QDialog>


namespace Ui {
class File;
}

class File : public QDialog
{
    Q_OBJECT

public:
    explicit File(QWidget *parent = nullptr);
    ~File();

private:
    Ui::File *ui;
    void okCliced();
signals:
    void filePath(const QString &str); // генерация сигнлала filePath


};

#endif // FILE_H

file.cpp
#include "file.h"
#include "ui_file.h"
#include <QPushButton>

File::File(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::File)
{
    ui->setupUi(this);
    connect(ui->buttonBox->button(QDialogButtonBox::Ok),SIGNAL(clicked()), SLOT(okCliced())); // ТУТ
    connect(ui->buttonBox->button(QDialogButtonBox::Cancel),SIGNAL(clicked()), SLOT(close()));
}

void File::okCliced()
{
    //emit filePath(ui->lineEdit->text()); /// генерировать сигнал
    close();
}

File::~File()
{
    delete ui;
}
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ответы на вопрос 1
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Ну, для начала, для ваших целей есть doc.qt.io/qt-5/qfiledialog.html с кучей статических методов на все случаи жизни. Его и используйте.
Если вы все кнопки добавили в buttonBox, то ваш код должен работать. Чтобы закрыть диалог вызывайте метод doc.qt.io/qt-5/qdialog.html#done .
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы