Задать вопрос
  • Ui не работает в новом классе QT. Что делать?

    @SHakeR
    Файл создаётся, но считывание названия происходит до его введения в LineEdit

    Считывание происходит, только происходит оно из поля формы класса MyClass (которое не выведено на экран, не заполнено и, соответственно, пустое), а вводите значение Вы в поле формы класса MainWindow.
    Проще всего сделать так:
    Class MyClass : public QMainWindow
    {
        Q_OBJECT
    public:
        Ui::MainWindow *ui = new Ui::MainWindow;
    public slots:
        void newSlot(QString fileName)
        {
            QFile file(fileName.toUtf8()+”.txt”);
            if (file.open(QIODevice::WriteOnly)){
                QString r=QFileInfo(fileName.toUtf8()+“.txt”).absolutePath();
                QTextStream out (&file);
                out<<r.toUtf8()<<endl;
            }
            file.close();
        }
    };


    и в mainwindow.cpp связать сигнал со слотом так:
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui (new Ui::MainWindow)
    {
        ui->setupUi(this);
        connect(ui->pushButton, &QPushButton::clicked, this, [this](){
            q.newSlot(ui->lineEdit->text());
        });
    };
    Ответ написан
    Комментировать