首页 > 解决方案 > 如何在gui中获取textEdit的文本内容

问题描述

我创建了一个用于图像采集的 gui。在gui中,有一个图片保存按钮,一个textEditlineText也可以是a)用于接收用户定义的图片名称的输入,作为图片的输出名称。我的问题是:1)如何获取textEdit?的输入文本,然后2)将QImage.jpeg格式的图像()保存到当前目录?

标签: qt

解决方案


@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();
}

我希望这对您的项目有用


推荐阅读