#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTextEdit>
#include<QDockWidget>
#include<QTreeWidget>
#include<QListWidget>
#include<QPushButton>
#include<QTableWidget>
#include<QLayout>
#include<QScrollBar>
#include<loadimgdk.h>
#include<QPoint>
#include<QMouseEvent>
#include<QDebug>
#include"photodock.h"
#include<QPainter>
#include<QLabel>
#include<QImage>
#include<imgscan.h>
#include<QTabWidget>
#include"QTabWidget"
#include<QDialog>
#include"QQuickView"
#include <QQmlContext>
#include<QWindow>
#include<QtQuickWidgets/QQuickWidget>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("PhotoScan");
setDockNestingEnabled(true);//自动吸附
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
// QLabel *te=new QLabel(this);
// te->setAlignment(Qt::AlignCenter);
// QTextEdit *te = new QTextEdit("MainWindow",this);
// te->setAlignment(Qt::AlignCenter);
// setCentralWidget(te);
// te->setReadOnly(true);
//QWidget *mid=new QWidget(this);
// setCentralWidget(mid);
//mid->show();
/* imgscan* imgw=new imgscan();
imgw->setParent(this);
imgw->setGeometry(500,500,800,800);
*/
// QTabWidget *tab1=new QTabWidget(this);
setCentralWidget(&tab1);
//.addTab
// QWidget* widget1=new QWidget();
// QWidget* widget2=new QWidget();
//tab1.setStyleSheet(("QTabWidget:pane {border-top:0px solid #e8f3f9;background: transparent; }")
tab1.addTab(&widget1,"Model");
//tab1.setStyleSheet(("QTabWidget:pane {border-top:0px solid #e8f3f9;background: transparent; }");
// tab1.addTab(widget2,"p1");
// tab1->setGeometry(200,200,600,600);
//停靠窗口1
LoadImgDK *dw1 = new LoadImgDK();
dw1->setParent(this);//构建停靠窗口,指定父类
dw1->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,可移动,可关闭
addDockWidget(Qt::LeftDockWidgetArea,dw1);
//停靠窗口2
QDockWidget *dw2 = new QDockWidget("Reference",this);//构建停靠窗口,指定父类
dw2->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,可浮动,可关闭
// dw2->setLayoutDirection()
addDockWidget(Qt::LeftDockWidgetArea,dw2);
QTableWidget *tbwidget=new QTableWidget(dw2);
tbwidget->setColumnCount(13);
// tbwidget->setRowCount(1);
tbwidget->setGeometry(0,20,this->width(),100);
tbwidget->setHorizontalHeaderLabels(QStringList()<<"Cameras"<<"X(m)"<<"Y(m)"<<"Z(m)"<<"Accuracy(m)"<<"Error(m)"<<"Yaw(°)"
<<"Pitch(°)"<<"Roll(°)"<<"Accuracy(°)"<<"Error(°)"<<"Projections"<<"Error(pix)");
QTableWidget *tbwidget2=new QTableWidget(dw2);
tbwidget2->setColumnCount(8);
// tbwidget2->setRowCount(1);
tbwidget2->setGeometry(0,130,this->width(),100);
tbwidget2->setHorizontalHeaderLabels(QStringList()<<"Markers"<<"X(m)"<<"Y(m)"<<"Z(m)"<<"Accuracy(m)"<<"Error(m)"
<<"Projections"<<"Error(pix)");
QTableWidget *tbwidget3=new QTableWidget(dw2);
tbwidget3->setColumnCount(4);
// tbwidget2->setRowCount(1);
tbwidget3->setGeometry(0,240,this->width(),100);
tbwidget3->setHorizontalHeaderLabels(QStringList()<<"Scale Bars"<<"Distance(m)"<<"Accuracy(m)"<<"Error(m)"
);
/* QHBoxLayout *hlayout=new QHBoxLayout;//给三个table在dockw里进行布局,尝试未果
hlayout->addWidget(tbwidget);
hlayout->addWidget(tbwidget2);
hlayout->addWidget(tbwidget3);
dw2->setLayout(hlayout);*/
/* QTableWidgetItem *bt_item1=new QTableWidgetItem();
bt_item1->setSizeHint(QSize(20,30));
bt_item1->setText("Cameras");
QTableWidgetItem *bt_item2=new QTableWidgetItem();
bt_item2->setText("X(m)");
bt_item1->setTextAlignment(Qt::AlignLeft);
bt_item2->setTextAlignment(Qt::AlignLeft);
bt_item2->setSizeHint(QSize(20,30));
tbwidget->setItem(2,2,bt_item1);
tbwidget->setItem(2,3,bt_item2);
*/
// tbwidget->show();
//停靠窗口3
QDockWidget *dw3 = new QDockWidget("Animation",this);//构建停靠窗口,指定父类
dw3->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性
// QTextEdit *dte3 = new QTextEdit("DockWindow 3");
// dw3->setWidget(dte3);
addDockWidget(Qt::LeftDockWidgetArea,dw3);
QScrollBar* sb1=new QScrollBar(dw3);
sb1->setOrientation(Qt::Horizontal);
sb1->setGeometry(0,40,dw3->width()+50,20);
sb1->setEnabled(false);
//停靠窗口4
QDockWidget *dw4 = new QDockWidget("TimeLine",this);//构建停靠窗口,指定父类
dw4->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性
// QTextEdit *dte4 = new QTextEdit("DockWindow 4");
// dw3->setWidget(dte4);
addDockWidget(Qt::LeftDockWidgetArea,dw4);
QScrollBar* sb2=new QScrollBar(dw4);
sb2->setOrientation(Qt::Horizontal);
sb2->setGeometry(0,40,dw4->width()+50,20);
sb2->setEnabled(false);
//停靠窗口5
QDockWidget *dw5 = new QDockWidget("Console",this);//构建停靠窗口,指定父类
dw5->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性
// dw5->setAllowedAreas(Qt::BottomDockWidgetArea );//设置可停靠区域为主窗口左边和右边
QTextEdit *dte5 = new QTextEdit("2020-07-10 08:32:34 No license found.");
dw5->setWidget(dte5);
dte5->setReadOnly(true);
addDockWidget(Qt::BottomDockWidgetArea,dw5);
//停靠窗口6
photodock *dw6=new photodock();
dw6->setParent(this);//构建停靠窗口,指定父类
dw6->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性
addDockWidget(Qt::BottomDockWidgetArea,dw6);
tabifyDockWidget(dw3,dw4);// 3 4合并
tabifyDockWidget(dw5,dw6);// 5 6合并
// QWindow* quickwin=new QWindow();
// HWND hwnd = ::FindWindow(L"CEFWebkitBrowserWnd", NULL);
// QWindow* native_wnd = QWindow::fromWinId((WId)hwnd);
// QQuickView view;
// view.setParent(native_wnd);
// QWidget* native_wdgt = QWidget::createWindowContainer(native_wnd);
// QWindow* quickw=new QWindow();
// quickw->addSubWindow(native_wdgt);
// native_wdgt->setMinimumSize(600,400);
// tab1.addTab(quickw,"3d");
//view.setParent(quickwin);
// view.setParent(quickwin);
/*
QWidget *quickw=new QWidget();
QWindow *quickwin=new QWindow();
// WId proc2window=WId(quickw->winId());
view.setParent(quickwin);
quickwin->setParent(quickw->window()->windowHandle());
tab1.addTab(quickw,"3d");
*/
// tab1.addTab(QWidget(view),"3d");
//view.setParent();
// 设置上下文属性
QObject::connect(dw1,SIGNAL(sig_draw(QStringList)),dw6,SLOT(drawphotos(QStringList)));
//QObject::connect(dw6,SIGNAL(singleshowBIG(QListWidgetItem*)),imgw,SLOT(getBIG(QListWidgetItem*)));
QObject::connect(dw6,SIGNAL(addp(imgscan*)),this,SLOT(addpp(imgscan*)));
QObject::connect(dw1,SIGNAL(img3d_sig(QString)),this,SLOT(getstr3d(QString)));
}
/*void MainWindow:: contextMenuEvent(QContextMenuEvent *event)
{
QPo
没有合适的资源?快使用搜索试试~ 我知道了~
obj加载/三维图像拖动放大缩小旋转/二维图像的缩略图预览
共51个文件
obj:12个
cpp:11个
h:7个
5星 · 超过95%的资源 需积分: 50 24 下载量 2 浏览量
2020-08-03
17:03:10
上传
评论 1
收藏 70.2MB ZIP 举报
温馨提示
模仿photoscan界面,右键左上角空白区域加载二维图像或者三维图像,得到chunk或者chunk3d,双击选择文件,二维图选择图片文件,三维图选择obj文件。右侧显示区会得到相应的tab分页,点击即可,支持放大缩小,旋转。拖动。
资源推荐
资源详情
资源评论
收起资源包目录
my_photoscan_final.zip (51个子文件)
my_photoscan_final
build-my_photoscan-Desktop_Qt_5_9_8_MSVC2017_64bit-Debug
ui_mainwindow.h 78KB
Makefile.Debug 120KB
release
Makefile.Release 120KB
Makefile 32KB
debug
moc_photodock.cpp 6KB
my_photoscan.ilk 3.1MB
moc_imgscan.obj 99KB
moc_loadimgdk.cpp 5KB
moc_predefs.h 276B
moc_loadimgdk.obj 148KB
my_photoscan.vc.pdb 3MB
my_photoscan.exe 505KB
loadimgdk.obj 267KB
moc_photodock.obj 168KB
qrc_qml.obj 9KB
qrc_qml.cpp 7KB
my_photoscan.pdb 3.75MB
main.obj 151KB
photodock.obj 179KB
moc_mainwindow.cpp 4KB
imgscan.obj 136KB
moc_mainwindow.obj 191KB
moc_imgscan.cpp 4KB
mainwindow.obj 1.74MB
.qmake.stash 1KB
my_photoscan
main.cpp 440B
loadimgdk.cpp 4KB
photodock.cpp 1KB
photodock.h 648B
mydkwgt.h 130B
mainwindow.h 758B
qml.qrc 131B
main.qml 3KB
imgscan.h 942B
loadimgdk.h 794B
mainwindow.cpp 9KB
mainwindow.ui 42KB
my_photoscan.pro.user 24KB
imgscan.cpp 3KB
mydkwgt.cpp 52B
my_photoscan.pro.user.f39f6b1 24KB
my_photoscan.pro 1KB
data
1.mtl 88B
1.obj 13.22MB
S0375.JPG 10.88MB
S0379.JPG 9.34MB
kass.obj 191KB
S0378.JPG 11.31MB
S0377.JPG 11.22MB
S0380.JPG 9.72MB
S0376.JPG 11.06MB
共 51 条
- 1
资源评论
- 红鲜森2020-11-23东西很好,但是可能是我电脑配置太差,运行不是很流畅。功能可以实现
Apotato
- 粉丝: 12
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功