Как поместить QProgressBar в QTextEdit - PullRequest
0 голосов
/ 22 марта 2019

Я проектирую журнал команд , используя QTextEdit, и мне было интересно, как поставить QProgressBar, если это возможно, каждый раз, когда пользователь взаимодействует с пользовательским интерфейсом и только для определенных команд.Например, если пользователь должен загружать изображения, чем должно быть QProgressBar, если пользователь только устанавливает некоторые элементы управления, то это не обязательно.До сих пор я не нашел ничего, что описывает это.

progress bar

Например, я помещаю ниже фрагмент кода, который должен содержать QProgressBar (например, пользователь загружаетизображения на QGraphicsView и показывают прогресс загрузки в процентах):

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    mDockWidget_A = new QDockWidget(QLatin1String("Command Log"));
    mDockWidget_A->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    mDockWidget_A->setMinimumHeight(30);
    // Adding object to the DockWidget
    mNewText = new QTextEdit;
    mNewText->setReadOnly(true);
    mNewText->setStyleSheet("background-color: light grey;");
    mNewText->setMinimumHeight(50);
    mNewText->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    mDockWidget_A->setWidget(mNewText);
    addDockWidget(Qt::BottomDockWidgetArea, mDockWidget_A);
    resizeDocks({mDockWidget_A}, {200}, Qt::Horizontal);

}

void MainWindow::on_originalmgA_clicked()
{
    imageOriginlUploadA();
    QSize s{32, 32};
    QTextDocumentFragment fragment;
    fragment = QTextDocumentFragment::fromHtml(
                QString(R"(<img src='/home/path/toDesktop/working.png' height="%1" width="%2">)")
                .arg(s.width())
                .arg(s.height()));
    mNewText->textCursor().insertFragment(fragment);
    mNewText->append("\n");
    mNewText->setVisible(true);
}

void MainWindow::imageOriginlUploadB()
{
    dir_Original_B = QFileDialog::getExistingDirectory(this, tr("Choose an image directory to load"),
                                                     filesListRight, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
    if(dir_Original_B.length() > 0){
        QImage image;
        QDir dirBObj(dir_Original_B);
        QStringList filesListRight = dirBObj.entryList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden  | QDir::AllDirs | QDir::Files, QDir::DirsFirst);
        ui->labelOrigImageB->setPixmap(QPixmap::fromImage(image.scaled(125,125,Qt::KeepAspectRatio,Qt::SmoothTransformation)));
        for ( int i = 0 ; i < filesListRight.size() ; i++ )
        {
            ui->listWidgetOriginalImgB->addItem(filesListRight.at(i));
        }
        ui->listWidgetOriginalImgB->update();
        ui->labelOrigImageB->show();
    }
}

Можно ли вставить QProgressBar внутри QTextEdit?И если да, кто-нибудь может указать в каком-либо полезном направлении или привести пример по этому вопросу?

...