This commit is contained in:
tangchao0503
2026-03-18 15:56:06 +08:00
parent 06dffddfd0
commit b23aedc6c7
10 changed files with 164 additions and 41 deletions

View File

@ -126,10 +126,27 @@ void MyCarousel::contextMenuEvent(QContextMenuEvent* event)
void MyCarousel::showContextMenu(const QPoint& pos) void MyCarousel::showContextMenu(const QPoint& pos)
{ {
QMenu menu(this); QMenu menu(this);
menu.setStyleSheet(R"(
QMenu {
background-color: #2a5dec;
color: white;
}
QMenu::item:selected {
background-color: #1a4ddc;
}
QMenu::separator {
height: 1px;
background: white;
}
)");
QAction* startAct = menu.addAction(QString::fromLocal8Bit("开始轮播")); QAction* startAct = menu.addAction(QString::fromLocal8Bit("开始轮播"));
QAction* stopAct = menu.addAction(QString::fromLocal8Bit("停止轮播")); QAction* stopAct = menu.addAction(QString::fromLocal8Bit("停止轮播"));
menu.addSeparator();
QAction* incAct = menu.addAction("+1");
QAction* decAct = menu.addAction("-1");
if (!m_isLocked) if (!m_isLocked)
startAct->setEnabled(false); startAct->setEnabled(false);
@ -142,6 +159,15 @@ void MyCarousel::showContextMenu(const QPoint& pos)
startAutoPlay(); startAutoPlay();
else if (act == stopAct) else if (act == stopAct)
stopAutoPlay(); stopAutoPlay();
else if (act == incAct) {
m_playInterval += 1000;
m_autoPlayerTimer->setInterval(m_playInterval);
}
else if (act == decAct) {
if (m_playInterval > 1)
m_playInterval -= 1000;
m_autoPlayerTimer->setInterval(m_playInterval);
}
} }
void MyCarousel::startAutoPlay() void MyCarousel::startAutoPlay()

View File

@ -31,7 +31,7 @@ HPPA::HPPA(QWidget* parent)
s_instance = this; s_instance = this;
ui.setupUi(this); ui.setupUi(this);
//setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(Qt::FramelessWindowHint);
// register MapLayer* metatype for queued signal/slot across threads // register MapLayer* metatype for queued signal/slot across threads
qRegisterMetaType<MapLayer*>("MapLayer*"); qRegisterMetaType<MapLayer*>("MapLayer*");
@ -276,8 +276,9 @@ sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidt
connect(m_layerTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), connect(m_layerTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(onLayerTreeSelectionChanged(QItemSelection,QItemSelection))); this, SLOT(onLayerTreeSelectionChanged(QItemSelection,QItemSelection)));
dock_layers->setWidget(dock_layersWidgetContents);
dock_layersWidgetContents->setStyleSheet(qss_DockWidget_contentWidget); dock_layersWidgetContents->setStyleSheet(qss_DockWidget_contentWidget);
dock_layers->setWidget(tmp(dock_layersWidgetContents));
//dock_layers->setMinimumWidth(449); //dock_layers->setMinimumWidth(449);
//dock_layers->setMaximumWidth(450); //dock_layers->setMaximumWidth(450);
@ -403,11 +404,12 @@ sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidt
} }
)"); )");
dock_hyperimgViewer->setWidget(dock_hyperimgViewerWidgetContents);
mPanelMenu->addAction(dock_hyperimgViewer->toggleViewAction()); mPanelMenu->addAction(dock_hyperimgViewer->toggleViewAction());
QWidget* tmp6 = new QWidget(); QWidget* tmp6 = new QWidget();
dock_hyperimgViewer->setTitleBarWidget(tmp6); dock_hyperimgViewer->setTitleBarWidget(tmp6);
dock_hyperimgViewer->setWidget(tmp(dock_hyperimgViewerWidgetContents));
//轮播看板 //轮播看板
m_dock_carousel = new CustomDockWidgetBase(QString::fromLocal8Bit("轮播"), this); m_dock_carousel = new CustomDockWidgetBase(QString::fromLocal8Bit("轮播"), this);
m_dock_carousel->setObjectName("mDockCarousel"); m_dock_carousel->setObjectName("mDockCarousel");
@ -429,8 +431,8 @@ sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidt
border-top-left-radius: 0px; border-top-left-radius: 0px;
border-top-right-radius: 0px; border-top-right-radius: 0px;
border-bottom-left-radius: 0px; border-bottom-left-radius: 10px;
border-bottom-right-radius: 0px; border-bottom-right-radius: 10px;
} }
)"); )");
QGridLayout* gridLayout_carouselContainer = new QGridLayout(carouselContainer); QGridLayout* gridLayout_carouselContainer = new QGridLayout(carouselContainer);
@ -476,7 +478,7 @@ sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidt
gridLayout_carouselContainer->addWidget(m_carousel); gridLayout_carouselContainer->addWidget(m_carousel);
m_dock_carousel->setWidget(carouselContainer); m_dock_carousel->setWidget(tmp(carouselContainer));
//控制看板 //控制看板
ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("控制")); ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("控制"));
@ -484,6 +486,8 @@ sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidt
initControlTabwidget(); initControlTabwidget();
m_tabManager = new TabManager(ui.controlTabWidget, this); m_tabManager = new TabManager(ui.controlTabWidget, this);
ui.mDockWidgetSpectrometer->setWidget(tmp(ui.dockWidgetContents_4));
//3D模型看板 //3D模型看板
ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3D模型")); ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3D模型"));
//ui.mDockWidgetSimulator->show(); //ui.mDockWidgetSimulator->show();
@ -519,7 +523,7 @@ sizePolicy1.setHeightForWidth(graphicsView_delete->sizePolicy().hasHeightForWidt
connect(m_view3DModelManager, SIGNAL(created3DModelPlantPhenotype()), this, SLOT(onCreated3DModelPlantPhenotype())); connect(m_view3DModelManager, SIGNAL(created3DModelPlantPhenotype()), this, SLOT(onCreated3DModelPlantPhenotype()));
connect(m_view3DModelManager, SIGNAL(created3DModelOneMotor()), this, SLOT(onCreated3DModelOneMotor())); connect(m_view3DModelManager, SIGNAL(created3DModelOneMotor()), this, SLOT(onCreated3DModelOneMotor()));
ui.mDockWidgetSimulator->setWidget(modelWidgetContainer); ui.mDockWidgetSimulator->setWidget(tmp(modelWidgetContainer));
//看板排版 //看板排版
splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal); splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal);
@ -779,6 +783,22 @@ void HPPA::initMenubarToolbar()
setMenuWidget(topWidget); setMenuWidget(topWidget);
} }
QWidget* HPPA::tmp(QWidget* a)
{
QWidget* Background = new QWidget(this);
Background->setObjectName("Background");
QGridLayout* layout_Background = new QGridLayout(Background);
layout_Background->setContentsMargins(0, 0, 0, 0);
Background->setStyleSheet(R"(
QWidget #Background{
background: #040125;
}
)");
layout_Background->addWidget(a);
return Background;
}
void HPPA::initControlTabwidget() void HPPA::initControlTabwidget()
{ {
//rgb相机 //rgb相机
@ -1102,6 +1122,29 @@ void HPPA::initPanelToolbar()
ui.mWindowsMenu->addMenu(mPanelMenu); ui.mWindowsMenu->addMenu(mPanelMenu);
ui.mWindowsMenu->addMenu(mToolbarMenu); ui.mWindowsMenu->addMenu(mToolbarMenu);
mPanelMenu->setStyleSheet(R"(
QMenu {
background-color: #0A1245; /* 菜单背景色 */
border: 1px solid gray; /* 可选,边框样式 */
color: white; /* 根据你的背景调整文字颜色 */
}
QMenu::item:selected {
background-color: rgba(255, 255, 255, 50); /* 选中时的背景色 */
color: white; /* 选中项字体颜色,可选 */
}
)");
mToolbarMenu->setStyleSheet(R"(
QMenu {
background-color: #0A1245; /* 菜单背景色 */
border: 1px solid gray; /* 可选,边框样式 */
color: white; /* 根据你的背景调整文字颜色 */
}
QMenu::item:selected {
background-color: rgba(255, 255, 255, 50); /* 选中时的背景色 */
color: white; /* 选中项字体颜色,可选 */
}
)");
mPanelMenu->addAction(ui.mDockWidgetSpectrometer->toggleViewAction()); mPanelMenu->addAction(ui.mDockWidgetSpectrometer->toggleViewAction());
mPanelMenu->addAction(ui.mDockWidgetSimulator->toggleViewAction()); mPanelMenu->addAction(ui.mDockWidgetSimulator->toggleViewAction());
@ -1698,14 +1741,38 @@ void HPPA::onExit()
void HPPA::closeEvent(QCloseEvent* event) void HPPA::closeEvent(QCloseEvent* event)
{ {
QMessageBox::StandardButton ret; QMessageBox msgBox(this);
msgBox.setWindowTitle(QString::fromLocal8Bit("退出确认"));
msgBox.setText(QString::fromLocal8Bit("确定要退出程序吗?"));
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::No);
msgBox.setStyleSheet(R"(
QMessageBox {
background-color: #0D1233;
}
QMessageBox QLabel {
color: #ACCDFF;
font-size: 14px;
}
QPushButton {
background-color: #142D7F;
color: #e6eeff;
border: 1px solid #2f6bff;
border-radius: 6px;
padding: 6px 20px;
min-width: 60px;
font-size: 13px;
}
QPushButton:hover {
border: 1px solid #4d8dff;
background-color: red;
}
QPushButton:pressed {
background-color: #23345c;
}
)");
ret = QMessageBox::question( QMessageBox::StandardButton ret = static_cast<QMessageBox::StandardButton>(msgBox.exec());
this,
QString::fromLocal8Bit("退出确认"),
QString::fromLocal8Bit("确定要退出程序吗?"),
QMessageBox::Yes | QMessageBox::No
);
if (ret == QMessageBox::Yes) if (ret == QMessageBox::Yes)
{ {

View File

@ -199,6 +199,7 @@ private:
void initMenubarToolbar(); void initMenubarToolbar();
void initPanelToolbar(); void initPanelToolbar();
void initControlTabwidget(); void initControlTabwidget();
QWidget* tmp(QWidget* a);
QLineEdit * frame_number; QLineEdit * frame_number;
QLineEdit * m_FilenameLineEdit; QLineEdit * m_FilenameLineEdit;

View File

@ -11,11 +11,11 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Hyper Plant Phenotypic Analysis</string> <string>Spectral Insight</string>
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="HPPA.qrc"> <iconset>
<normaloff>:/HPPA/HPPA.ico</normaloff>:/HPPA/HPPA.ico</iconset> <normaloff>icon/all/png/Group 356_slices/22.png</normaloff>icon/all/png/Group 356_slices/22.png</iconset>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true"/> <string notr="true"/>

View File

@ -68,8 +68,8 @@ QVariant LayerTreeModel::data(const QModelIndex& index, int role) const
} }
} }
case Qt::CheckStateRole: //case Qt::CheckStateRole:
return static_cast<int>(n->visible()); // return static_cast<int>(n->visible());
case Qt::ToolTipRole: case Qt::ToolTipRole:
return (n->type() == LayerTreeNode::Type::Group) ? "Group" : "Layer"; return (n->type() == LayerTreeNode::Type::Group) ? "Group" : "Layer";

View File

@ -30,6 +30,19 @@ void LayerTreeView::contextMenuEvent(QContextMenuEvent* event)
setCurrentIndex(QModelIndex()); setCurrentIndex(QModelIndex());
QMenu* menu = m_menuProvider->createContextMenu(); QMenu* menu = m_menuProvider->createContextMenu();
menu->setStyleSheet(R"(
QMenu {
background-color: #2a5dec;
color: white;
}
QMenu::item:selected {
background-color: #1a4ddc;
}
QMenu::separator {
height: 1px;
background: white;
}
)");
if (menu) if (menu)
{ {
menu->exec(event->globalPos()); menu->exec(event->globalPos());

View File

@ -232,20 +232,44 @@ void TwoMotorControl::display_motors_connectivity(std::vector<int> connectivity)
//std::cout << "-----------------------------------"<<connectivity.size()<< std::endl; //std::cout << "-----------------------------------"<<connectivity.size()<< std::endl;
if (connectivity[0]) if (connectivity[0])
{ {
this->ui.xMotorStateLabel->setStyleSheet("QLabel{background-color:rgb(0,255,0);}"); this->ui.xMotorStateLabel->setStyleSheet(R"(
QLabel
{
background-color: #08FACE;
border-radius: 4px;
}
)");
} }
else else
{ {
this->ui.xMotorStateLabel->setStyleSheet("QLabel{background-color:rgb(255,0,0);}"); this->ui.xMotorStateLabel->setStyleSheet(R"(
QLabel
{
background-color: red;
border-radius: 4px;
}
)");
} }
if (connectivity[1]) if (connectivity[1])
{ {
this->ui.yMotorStateLabel->setStyleSheet("QLabel{background-color:rgb(0,255,0);}"); this->ui.yMotorStateLabel->setStyleSheet(R"(
QLabel
{
background-color: #08FACE;
border-radius: 4px;
}
)");
} }
else else
{ {
this->ui.yMotorStateLabel->setStyleSheet("QLabel{background-color:rgb(255,0,0);}"); this->ui.yMotorStateLabel->setStyleSheet(R"(
QLabel
{
background-color: red;
border-radius: 4px;
}
)");
} }
} }
@ -440,7 +464,7 @@ void TwoMotorControl::onSaveRecordLine2File_btn()
fclose(RecordLineFileHandle); fclose(RecordLineFileHandle);
delete[] data; delete[] data;
QMessageBox::information(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("保存成功!")); //QMessageBox::information(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("保存成功!"));
} }
void TwoMotorControl::onReadRecordLineFile_btn() void TwoMotorControl::onReadRecordLineFile_btn()
@ -499,5 +523,5 @@ void TwoMotorControl::onReadRecordLineFile_btn()
fclose(RecordLineFileHandle); fclose(RecordLineFileHandle);
delete[] data; delete[] data;
QMessageBox::information(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("读取成功!")); //QMessageBox::information(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("读取成功!"));
} }

View File

@ -18,7 +18,7 @@
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset> <iconset>
<normaloff>HPPA.ico</normaloff>HPPA.ico</iconset> <normaloff>C:/Users/73505/.designer/backup/HPPA.ico</normaloff>C:/Users/73505/.designer/backup/HPPA.ico</iconset>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin"> <property name="leftMargin">
@ -93,7 +93,10 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="iconLabel"> <widget class="QLabel" name="iconLabel">
<property name="text"> <property name="text">
<string> </string> <string/>
</property>
<property name="pixmap">
<pixmap>icon/all/png/Group 356_slices/22.png</pixmap>
</property> </property>
</widget> </widget>
</item> </item>
@ -193,7 +196,7 @@ QPushButton:pressed
<string/> <string/>
</property> </property>
<property name="pixmap"> <property name="pixmap">
<pixmap>icon/all/png/Group 356_slices/Group 356.png</pixmap> <pixmap>C:/Users/73505/.designer/backup/icon/all/png/Group 356_slices/Group 356.png</pixmap>
</property> </property>
</widget> </widget>
<widget class="QWidget" name="widget_2" native="true"> <widget class="QWidget" name="widget_2" native="true">
@ -295,10 +298,6 @@ QPushButton:pressed
</item> </item>
</layout> </layout>
</widget> </widget>
<zorder>label_7</zorder>
<zorder>widget_2</zorder>
<zorder>widget_3</zorder>
<zorder>companylname_label</zorder>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -6,13 +6,6 @@ aboutWindow::aboutWindow(QWidget* parent)
{ {
ui.setupUi(this); ui.setupUi(this);
QSvgRenderer svgRenderer(QString(".//icon//all//software_icon.svg"));
QPixmap pixmap(24, 24);
pixmap.fill(Qt::transparent); // <20><><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>
QPainter painter(&pixmap);
svgRenderer.render(&painter);
ui.iconLabel->setPixmap(pixmap);
ui.companylname_label->setOpenExternalLinks(true);//<2F><><EFBFBD><EFBFBD>Ϊtrue<75><65><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD>ҳ ui.companylname_label->setOpenExternalLinks(true);//<2F><><EFBFBD><EFBFBD>Ϊtrue<75><65><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD>ҳ
QString text = ui.companylname_label->text(); QString text = ui.companylname_label->text();
ui.companylname_label->setText("<a style='color: green; text-decoration: none' href = http://www.iris-rs.cn/pr.jsp?_jcp=3_10>" + text); ui.companylname_label->setText("<a style='color: green; text-decoration: none' href = http://www.iris-rs.cn/pr.jsp?_jcp=3_10>" + text);

View File

@ -64,13 +64,13 @@ ImageControl::ImageControl(QWidget* parent)
} }
QDoubleSpinBox::up-arrow { QDoubleSpinBox::up-arrow {
image: url(:/icons/up.svg); image: url(D:/cpp_project_vs2022/HPPA/HPPA/icon/all/arrow_up.svg);
width: 10px; width: 10px;
height: 10px; height: 10px;
} }
QDoubleSpinBox::down-arrow { QDoubleSpinBox::down-arrow {
image: url(:/icons/down.svg); image: url(D:/cpp_project_vs2022/HPPA/HPPA/icon/all/arrow_down.svg);
width: 10px; width: 10px;
height: 10px; height: 10px;
} }