Как добавить и показать содержимое виджета на другой виджет в QT?

Я создал класс horrizontalprogressbar, в котором я создал простой индикатор прогресса. У меня есть другой класс, называемый mainwindow, и я хотел бы получить доступ и отобразить содержимое horrizontalprogressbar в mainwindow. Я много чего здесь пробовал, но все равно я получаю horrizontalprogressbar и mainwindow в отдельных окнах. Есть ли в любом случае для отображения их обоих в одном и том же окне. Поскольку я новичок в QT, я был бы очень признателен за любую помощь, которую мог бы получить, чтобы решить эту проблему.

Пожалуйста, найдите код ниже: —
horrizontalprogressbar.h

#ifndef HORRIZONTALPROGRESSBAR_H
#define HORRIZONTALPROGRESSBAR_H

#include <QProgressBar>
#include <QWidget>

class horrizontalprogressbar: public QProgressBar
{
Q_OBJECT
public:
horrizontalprogressbar();
QProgressBar progressBar_horizontal;
};

#endif // HORRIZONTALPROGRESSBAR_H

horrizontalprogressbar.cpp

#include "horrizontalprogressbar.h"
horrizontalprogressbar::horrizontalprogressbar()
{
progressBar_horizontal.setRange(0,5);
progressBar_horizontal.setValue(2.5);
progressBar_horizontal.setFixedSize(300,50);
//progressBar_horizontal.show();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtWidgets>

class horrizontalprogressbar;

class MainWindow : public QMainWindow
{
Q_OBJECT

private:
horrizontalprogressbar *progressbar_H;

public:
MainWindow();//(QWidget *parent = 0);
~MainWindow();
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"#include "horrizontalprogressbar.h"
MainWindow::MainWindow()//(QWidget *parent)
// : QMainWindow(parent)
{
progressbar_H = new horrizontalprogressbar;
setCentralWidget(progressbar_H);
progressbar_H->setParent(this);
//progressbar_H->setFixedSize(200,200);
//progressbar_H->show();

}

MainWindow::~MainWindow()
{

}

main.cpp

#include "mainwindow.h"#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setFixedSize(800,600);
w.setStyleSheet("QMainWindow {background: 'black';}");
w.show();

return a.exec();
}

0

Решение

Это работает для меня, измените следующее, чтобы при построении были применены настройки вашего нового объекта:

#include "horrizontalprogressbar.h"
horrizontalprogressbar::horrizontalprogressbar()
{
this->setRange(0,5);
this->setValue(2.5);
this->setFixedSize(300,50);
//    progressBar_horizontal.show();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]