-2
時許設計攝像頭應用程序,所以我有MenuBarClass(這將創建菜單圖標),CameraViewClass(創建圖像控件在那裏得到實時顯示圖像),RecentImageClass(顯示最近的圖像),所以我想要在一個主窗口中顯示所有類對象(例如:菜單圖標,圖像小部件,最新圖像小部件)。我在菜單欄類中使用了所有類實例對象,但仍然無法在主窗口中顯示所有內容。我沒有使用ui表單。的Qt顯示所有類對象(UI元素)到一個主窗口
class MenuBar : public QMainWindow
{
Q_OBJECT
public:
MenuBar(QWidget *parent = 0);
~MenuBar();
void CrateAction();
void CreateStatusbar();
public slots:
void open();
private:
CameraView *mview;
RecentImage *mImage;
QMenu *mFile;
QMenu *mPath;
QMenu *mSave;
QWidget *mcentralwidget;
QWidget *wid;
};
MenuBar::MenuBar(QWidget *parent)
: QMainWindow(parent),
mFile(NULL),
mPath(NULL),
mSave(NULL),
mcentralwidget(NULL)
{
mview=new CameraView(this);
mImage=new RecentImage(this);
//mcentralwidget=new QWidget(this);
//setCentralWidget(mcentralwidget);
resize(800,600);
CrateAction();
CreateStatusbar();
}
class CameraView : public QMainWindow
{
Q_OBJECT
public:
explicit CameraView(QWidget *parent = 0);
void SetCamera(const QCameraInfo& view);
void StartCamera();
void StopCamera();
void Record();
void Pause();
public slots:
private:
QWidget *mImageWidget;
QCamera *mCamera;
QCameraImageCapture *mImageCapture;
QMediaRecorder *mRecorder;
};
CameraView::CameraView(QWidget *parent) :
QMainWindow(parent),
mCamera(NULL),
mImageCapture(NULL),
mRecorder(NULL),
mImageWidget(NULL)
{
mImageWidget=new QWidget();
mImageWidget->setStyleSheet("border:1px solid black");
// mImageWidget->setGeometry(1,1,798,350);
}
class RecentImage : public QMainWindow
{
Q_OBJECT
public:
explicit RecentImage(QWidget *parent = 0);
void createScrollArea();
signals:
public slots:
private:
QWidget *mWidget1,*mWidget2;
QHBoxLayout *mHlayout;
QScrollArea *mScrollArea;
};
RecentImage::RecentImage(QWidget *parent) :
QMainWindow(parent),
mWidget1(NULL),
mWidget2(NULL),
mHlayout(NULL),
mScrollArea(NULL)
{
createScrollArea();
}
void RecentImage::createScrollArea()
{
QHBoxLayout *vLayout = new QHBoxLayout();
QScrollArea *scrollArea = new QScrollArea();
//scrollArea->setWidgetResizable(true);
QWidget *widget = new QWidget();
widget->setGeometry(0,200,600,150);
widget->setStyleSheet("border:1px solid black");
QHBoxLayout *vLayout2 = new QHBoxLayout(widget);
scrollArea->setWidget(widget);
vLayout->addWidget(scrollArea);
setCentralWidget(scrollArea);
for (int i = 0; i < 20; i++) {
QWidget *widget = new QWidget();
vLayout2->addWidget(widget);
}
show();
}