备份
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
#include <qqueue.h>
|
||||
#include <qthread.h>
|
||||
#include <qcombobox.h>
|
||||
#include <qmutex.h>
|
||||
#include <qmap.h>
|
||||
#include <qbuffer.h>
|
||||
#include <qimagewriter.h>
|
||||
@@ -47,7 +46,17 @@ public:
|
||||
|
||||
//scene->addItem(rectGroup);
|
||||
setScene(scene);
|
||||
#if switchToTongYongUi == true
|
||||
setStyleSheet(R"(
|
||||
QGraphicsView#SonGraphicsView {
|
||||
background: rgb(32, 36, 40);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
border-radius: 10px; /* 圆角半径 */
|
||||
}
|
||||
)");
|
||||
|
||||
#else
|
||||
setStyleSheet(R"(
|
||||
QGraphicsView#SonGraphicsView {
|
||||
background: transparent;
|
||||
@@ -55,6 +64,7 @@ public:
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
})");
|
||||
#endif
|
||||
}
|
||||
|
||||
void setImg(const QPixmap& pixmap) {
|
||||
@@ -239,46 +249,54 @@ private:
|
||||
class ImageWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
fancyButton* switchBtn;
|
||||
QComboBox switchBox;
|
||||
QMutex switchBoxMutex;
|
||||
ImageWidget(QWidget* parent = nullptr) : QWidget(parent) {
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(5, 5, 5, 5);
|
||||
setObjectName("ImageWidget");
|
||||
setStyleSheet(R"(
|
||||
#ImageWidget{
|
||||
background: rgb(50, 55, 60);
|
||||
})");
|
||||
layout->setContentsMargins(2, 2, 2, 2);
|
||||
viewer = new SonGraphicsView("");
|
||||
this->setMaximumSize(9999, 9999);
|
||||
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("微软雅黑", 12, QFont::Bold);
|
||||
QHBoxLayout* hLayout = new QHBoxLayout();
|
||||
|
||||
label = new QLabel(u8"相机1");
|
||||
QFont font("微软雅黑", 8 , QFont::Bold);
|
||||
QWidget* hWidget = new QWidget(this);
|
||||
QHBoxLayout* hLayout = new QHBoxLayout(hWidget);
|
||||
hWidget->setFixedHeight(15);
|
||||
#if switchToTongYongUi == 0
|
||||
auto spaceItem = new QSpacerItem(100, 1);
|
||||
hLayout->addSpacerItem(spaceItem);
|
||||
#endif
|
||||
label = new QLabel(u8"相机标签");
|
||||
label->setAlignment(Qt::AlignLeft);
|
||||
label->setFont(font);
|
||||
label->setPalette(palette);
|
||||
|
||||
label->setFixedHeight(10 * 2);
|
||||
switchBox.setFont(font);
|
||||
switchBox.setPalette(palette);
|
||||
|
||||
switchBox.setFixedWidth(100);
|
||||
|
||||
#if switchToTongYongUi == 1
|
||||
switchBox.hide();
|
||||
#endif
|
||||
connect(&switchBox, &QComboBox::currentTextChanged, [=](QString type)
|
||||
{
|
||||
switchViewType(type);
|
||||
});
|
||||
|
||||
|
||||
label->setAlignment(Qt::AlignCenter);
|
||||
hLayout->addWidget(label);
|
||||
hLayout->addWidget(&switchBox);
|
||||
hLayout->setContentsMargins(0, 0, 0, 0);
|
||||
switchBtn = new fancyButton(
|
||||
30,
|
||||
30,
|
||||
QIcon(":/icon/icon/switch.png"),
|
||||
"切换结果图与原图"
|
||||
);
|
||||
|
||||
//hLayout->addWidget(switchBtn);
|
||||
|
||||
layout->addLayout(hLayout);
|
||||
layout->addWidget(hWidget);
|
||||
layout->addWidget(viewer);
|
||||
|
||||
viewer->setDragMode(QGraphicsView::ScrollHandDrag);
|
||||
@@ -298,7 +316,7 @@ public:
|
||||
//view->scene->addItem(backgroundItem);
|
||||
setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(this, &QWidget::customContextMenuRequested, this, &ImageWidget::showContextMenu);
|
||||
switchBtn->click();//切换结果图
|
||||
|
||||
}
|
||||
~ImageWidget()
|
||||
{
|
||||
@@ -369,6 +387,7 @@ protected:
|
||||
}
|
||||
}
|
||||
private:
|
||||
#if switchToTongYongUi == 0
|
||||
void paintEvent(QPaintEvent* event) override {
|
||||
QWidget::paintEvent(event);
|
||||
|
||||
@@ -376,6 +395,20 @@ private:
|
||||
painter.setPen(QPen(Qt::white, 1));
|
||||
painter.drawRect(rect().adjusted(1, 1, -2, -2));
|
||||
}
|
||||
#else
|
||||
void paintEvent(QPaintEvent* event) override {
|
||||
QPainter painter(this);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
|
||||
int radius = 10; // 圆角半径
|
||||
QRect r = rect();
|
||||
|
||||
// 填充圆角背景
|
||||
painter.setBrush(QColor(50, 55, 60));
|
||||
painter.setPen(Qt::NoPen);
|
||||
painter.drawRoundedRect(r, radius, radius);
|
||||
}
|
||||
#endif
|
||||
void showContextMenu(const QPoint& pos) {
|
||||
//QMenu contextMenu(tr("Context Menu"), this);
|
||||
|
||||
@@ -426,15 +459,12 @@ public:
|
||||
|
||||
|
||||
|
||||
void disableAllSwitchBtn()
|
||||
{
|
||||
for (auto widget : ImageWidgetList)
|
||||
widget->switchBtn->hide();
|
||||
}
|
||||
bool showImg(QPixmap img, QString nickName, QString _type ="null")
|
||||
{
|
||||
if (map.find(nickName) == map.end())
|
||||
if (map.find(nickName) == map.end()) {
|
||||
qCritical() << "图像接收方与现有不符=>" << nickName;
|
||||
return false;
|
||||
}
|
||||
if (_type == "null")
|
||||
map[nickName]->showImgOnGraphicsView(img);
|
||||
map[nickName]->sendImg(_type, img);
|
||||
|
||||
Reference in New Issue
Block a user