#include "expertboxlayoutwin.h" #include "moduleunit.h" #include "gutil/qgui.h" #include #include #include #include ExpertBoxLayoutWin::ExpertBoxLayoutWin(QWidget *parent) : BaseWin{parent} { //setWindowModality(Qt::WindowModal); setAttribute(Qt::WA_DeleteOnClose); setWindowTitle("箱体高级布局"); resize(1024, 720); auto vBox = new VBox(center); vBox->setContentsMargins(0,0,0,0); vBox->setSpacing(3); vBox->addLayout(addBtns(new QHBoxLayout())); auto hBox = new HBox(vBox); vBox = new VBox(hBox); vBox->addWidget(new QLabel("模组编辑")); auto grid = new Grid(vBox); auto btnAdd = new QPushButton("添加"); grid->addWidget(btnAdd, 0, 0); auto btnDel = new QPushButton("删除"); grid->addWidget(btnDel, 0, 1); auto btnMove = new QPushButton("移动"); grid->addWidget(btnMove, 1, 0); auto btnRotate = new QPushButton("旋转"); grid->addWidget(btnRotate, 1, 1); vBox->addWidget(new QLabel("HUB口编辑")); grid = new Grid(vBox); auto btnPort = new QPushButton("端口"); grid->addWidget(btnPort, 0, 0); auto btnManual = new QPushButton("手动"); grid->addWidget(btnManual, 0, 1); auto btnUp = new QPushButton("上移"); grid->addWidget(btnUp, 1, 0); auto btnDown = new QPushButton("下移"); grid->addWidget(btnDown, 1, 1); vBox->addWidget(new QLabel("HUB口编辑")); grid = new Grid(vBox); auto fdHasPos = new QCheckBox("位置"); grid->addWidget(fdHasPos, 0, 0); auto fdHasSize = new QCheckBox("大小"); grid->addWidget(fdHasSize, 0, 1); auto fdHasConn = new QCheckBox("连接"); grid->addWidget(fdHasConn, 1, 0); auto fdHasName = new QCheckBox("名称"); grid->addWidget(fdHasName, 1, 1); auto fdHasOutline = new QCheckBox("轮廓"); grid->addWidget(fdHasOutline, 2, 0); auto fdHasRotate = new QCheckBox("旋转"); grid->addWidget(fdHasRotate, 2, 1); vBox->addStretch(); vBox = new VBox(hBox); hBox = new HBox(vBox); hBox->addStretch(); auto scroll = new QScrollArea; vBox->addWidget(scroll); auto screen = new QWidget(scroll); screen->setGeometry(0, 0, 1024, 1024); screen->setAutoFillBackground(true); auto pal = palette(); pal.setColor(QPalette::Window, QColor(0x222222)); screen->setPalette(pal); int idx = 0; for(int rr=0; rr<4; rr++) { QString name = "P"+QString::number(rr+1); auto unit = new ModuleUnit(this, name, idx, 0, 128, 128, screen); unit->setAutoFillBackground(true); pal.setColor(QPalette::Window, colors[rr]); unit->setPalette(pal); idx += 128; } // connect(canvas, &ResizeEmitedWgt::resized, this, [this, canvas, screen] { // screen->resize(qRound(screenWidth*rate), qRound(screenHeight*rate)); // auto children = screen->children(); // foreach(auto childObj, children) { // auto unit = static_cast(childObj); // unit->setGeometry(qRound(unit->mX*rate), qRound(unit->mY*rate), qRound(unit->mW*rate), qRound(unit->mH*rate)); // } // }); }