как получить текстовое содержимое textEdit в графическом интерфейсе - PullRequest
1 голос
/ 27 апреля 2019

Я создал графический интерфейс для получения изображений.В графическом интерфейсе есть кнопка для сохранения изображения и одна textEdit (возможно, также может использоваться lineText) для получения ввода имени изображения, определенного пользователем, которое должно использоваться в качестве имени вывода.изображения.У меня вопрос: 1) как получить входной текст textEdit ?, а затем 2) сохранить изображение (QImage) в формате .jpeg в текущем каталоге?

1 Ответ

1 голос
/ 27 апреля 2019

@ jingweimo, у меня была похожая проблема, я надеюсь, что это решение может подойти для вашего случая.Для получения имени входного изображения вам нужно только:

ui->labelCroppedA->setPixmap(
   QPixmap::fromImage(QImage(cdir + "/" + croppedFilenamesA[croppedIndexA])));
                                    ^ add directory separator

Также для сохранения изображения в формате jpeg (или в дополнительном формате) вы можете использовать специальную функцию QImageWriter::supportedImageFormats(), которая имеет много форматов.вы можете выбрать и вы можете увидеть это из моего предыдущего вопроса или ниже:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene *scene = new QGraphicsScene;
    QGraphicsView *view = new QGraphicsView{scene};
    scene->addRect(QRectF(0, 0, 100, 100), QPen(Qt::red), QBrush(Qt::blue));
    scene->addEllipse(QRectF(40, 30, 100, 100), QPen(Qt::green), QBrush(Qt::gray));
    QComboBox *combo_formats = new QComboBox;
    for(const QByteArray & format : QImageWriter::supportedImageFormats()){
        combo_formats->addItem(format);
    }
    QPushButton *save_button = new QPushButton{"Save"};
    QObject::connect(save_button, &QPushButton::clicked,[view, combo_formats](){
       QPixmap pixmap = view->grab();
       QString filename = QString("%1.%2").arg("image").arg(combo_formats->currentText());
       pixmap.save(filename);
    });
    QMainWindow w;
    QWidget *central_widget = new QWidget;
    w.setCentralWidget(central_widget);
    QFormLayout *lay = new QFormLayout{central_widget};
    lay->addRow(view);
    lay->addRow("Select Format:", combo_formats);
    lay->addRow(save_button);
    w.show();
    return a.exec();
}

Я надеюсь, что это может быть полезно для вашего проекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...