初步完成美化:

1、左下角3d模型预览看板;
2、右下角控制看板
This commit is contained in:
tangchao0503
2026-01-16 17:30:05 +08:00
parent f0f41f9a17
commit 30306e9396
13 changed files with 2204 additions and 1736 deletions

View File

@ -12,7 +12,7 @@ MyCarousel::MyCarousel(QWidget* parent)
m_isPlaying(false), m_isPlaying(false),
m_isLocked(false), m_isLocked(false),
m_lockedIndex(-1), m_lockedIndex(-1),
m_playInterval(1000), m_playInterval(2000),
m_intervalButtonSize(40) m_intervalButtonSize(40)
{ {
QVBoxLayout* layout = new QVBoxLayout(this); QVBoxLayout* layout = new QVBoxLayout(this);

View File

@ -406,6 +406,7 @@ HPPA::HPPA(QWidget* parent)
file.close(); file.close();
this->restoreState(ba); this->restoreState(ba);
} }
this->showMaximized();
} }
void HPPA::initMenubarToolbar() void HPPA::initMenubarToolbar()
@ -520,39 +521,21 @@ void HPPA::initMenubarToolbar()
} }
void HPPA::initControlTabwidget() void HPPA::initControlTabwidget()
{ {
ui.controlTabWidget->removeTab(1);
m_videoWidget = new QWidget();
QVBoxLayout* vBoxLayout_videoWidget = new QVBoxLayout(m_videoWidget);
vBoxLayout_videoWidget->setSpacing(6);
vBoxLayout_videoWidget->setObjectName(QString::fromUtf8("vBoxLayout_videoWidget"));
vBoxLayout_videoWidget->setContentsMargins(0, 0, 0, 0);
m_open_rgb_camera_btn = new QPushButton(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
m_open_rgb_camera_btn->setObjectName(QString::fromUtf8("m_open_rgb_camera_btn"));
m_close_rgb_camera_btn = new QPushButton(QString::fromLocal8Bit("<EFBFBD>ر<EFBFBD>"));
m_close_rgb_camera_btn->setObjectName(QString::fromUtf8("m_close_rgb_camera_btn"));
vBoxLayout_videoWidget->addWidget(m_open_rgb_camera_btn);
vBoxLayout_videoWidget->addWidget(m_close_rgb_camera_btn);
//rgb<67><62><EFBFBD><EFBFBD> //rgb<67><62><EFBFBD><EFBFBD>
m_RgbCameraThread = new QThread(); m_RgbCameraThread = new QThread();
m_RgbCamera = new RgbCameraOperation(); m_RgbCamera = new RgbCameraOperation();
m_RgbCamera->moveToThread(m_RgbCameraThread); m_RgbCamera->moveToThread(m_RgbCameraThread);
m_RgbCameraThread->start(); m_RgbCameraThread->start();
connect(m_open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//ʹ<><CAB9><EFBFBD>ź<EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD>̣߳<DFB3>ui<75>̣߳<DFB3>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>Ƶ <20><> <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><E6BFA8> connect(ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera()));//ʹ<><CAB9><EFBFBD>ź<EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD>̣߳<DFB3>ui<75>̣߳<DFB3>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>Ƶ <20><> <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><E6BFA8>
connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SLOT(onPlotRgbImage())); connect(m_RgbCamera, SIGNAL(PlotSignal()), this, SLOT(onPlotRgbImage()));
//m_RgbCamera->setCallback(onPlotRgbImage); //m_RgbCamera->setCallback(onPlotRgbImage);
//connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//ʹ<>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD>̣߳<DFB3>ui<75>̣߳<DFB3><CCA3>ϵ<EFBFBD><CFB5><EFBFBD>Ƶ <20><> ʧ<><CAA7> //connect(this->ui.open_rgb_camera_btn, SIGNAL(clicked()), m_RgbCamera, SLOT(OpenCamera_callback()));//ʹ<>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD>̣߳<DFB3>ui<75>̣߳<DFB3><CCA3>ϵ<EFBFBD><CFB5><EFBFBD>Ƶ <20><> ʧ<><CAA7>
connect(m_close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD> connect(ui.close_rgb_camera_btn, SIGNAL(clicked()), this, SLOT(onCloseRgbCamera()));//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
connect(m_RgbCamera, SIGNAL(CamClosed()), this, SLOT(onClearLabel())); connect(m_RgbCamera, SIGNAL(CamClosed()), this, SLOT(onClearLabel()));
ui.controlTabWidget->addTab(m_videoWidget, QString::fromLocal8Bit("rgb<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dock //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dock
m_adt = new adjustTable(); m_adt = new adjustTable();
m_adt->setWindowFlags(Qt::Widget); m_adt->setWindowFlags(Qt::Widget);
@ -772,7 +755,7 @@ void HPPA::createOneMotorScenario()
ui.mAction_1AxisMotor->setChecked(true); ui.mAction_1AxisMotor->setChecked(true);
//<2F><><EFBFBD>½ǿ<C2BD><C7BF><EFBFBD>tab //<2F><><EFBFBD>½ǿ<C2BD><C7BF><EFBFBD>tab
m_tabManager->hideTab(m_videoWidget); m_tabManager->hideTab(ui.rgbCameraWidget);
m_tabManager->hideTab(m_adt); m_tabManager->hideTab(m_adt);
m_tabManager->hideTab(m_pc); m_tabManager->hideTab(m_pc);
m_tabManager->hideTab(m_rac); m_tabManager->hideTab(m_rac);
@ -806,7 +789,7 @@ void HPPA::createPlantPhenotypeScenario()
m_tabManager->hideTab(m_rac); m_tabManager->hideTab(m_rac);
m_tabManager->hideTab(m_omc); m_tabManager->hideTab(m_omc);
m_tabManager->showTab(m_videoWidget); m_tabManager->showTab(ui.rgbCameraWidget);
m_tabManager->showTab(m_adt); m_tabManager->showTab(m_adt);
m_tabManager->showTab(m_pc); m_tabManager->showTab(m_pc);
m_tabManager->showTab(m_tmc); m_tabManager->showTab(m_tmc);

View File

@ -244,7 +244,6 @@ private:
TabManager* m_tabManager; TabManager* m_tabManager;
QWidget* m_videoWidget;
adjustTable* m_adt; adjustTable* m_adt;
PowerControl* m_pc; PowerControl* m_pc;
RobotArmControl* m_rac; RobotArmControl* m_rac;

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1486</width> <width>1486</width>
<height>899</height> <height>898</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -20,25 +20,7 @@
<property name="styleSheet"> <property name="styleSheet">
<string notr="true"/> <string notr="true"/>
</property> </property>
<widget class="QWidget" name="centralWidget"> <widget class="QWidget" name="centralWidget"/>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar"> <widget class="QMenuBar" name="menuBar">
<property name="geometry"> <property name="geometry">
<rect> <rect>
@ -273,252 +255,549 @@ QToolBar QToolButton:hover {
<number>2</number> <number>2</number>
</attribute> </attribute>
<widget class="QWidget" name="dockWidgetContents_4"> <widget class="QWidget" name="dockWidgetContents_4">
<property name="styleSheet">
<string notr="true">QWidget #dockWidgetContents_4
{
background-color: #0E1C4C;
border-top: 1px solid #2c586b;
border-left: 1px solid #2c586b;
border-right: 1px solid #2c586b;
border-bottom: 1px solid #2c586b;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
</string>
</property>
<layout class="QGridLayout" name="gridLayout_5"> <layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>2</number>
</property>
<property name="horizontalSpacing">
<number>6</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QTabWidget" name="controlTabWidget"> <widget class="QTabWidget" name="controlTabWidget">
<property name="styleSheet">
<string notr="true">QTabBar::tab {
background: #0E1C4C;
color: white;
padding: 6px 12px;
border: none;
border-top: 1px solid #27376C;
height: 41;
}
QTabBar::tab:selected {
background: #0D1233;
color: white;
border: none;
}
/*QTabBar::tab:hover {
background: #141A45;
}*/
QTabWidget::pane {
border: none;
border-top: 1px solid #27376C;
background: #0D1233;
top: -1px;
}
</string>
</property>
<property name="tabPosition"> <property name="tabPosition">
<enum>QTabWidget::South</enum> <enum>QTabWidget::South</enum>
</property> </property>
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<property name="elideMode">
<enum>Qt::ElideNone</enum>
</property>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tab">
<property name="styleSheet">
<string notr="true">
QLineEdit {
background-color: #142D7F;
color: #e6eeff;
border: 1px solid #2f6bff;
border-radius: 6px;
padding: 4px 8px;
min-width: 70px;
min-height: 20px;
font-size: 13px;
}
QLineEdit:hover {
border: 1px solid #4d8dff;
}
QLineEdit:focus {
border: 1px solid #6aa2ff;
background-color: #23345c;
}
QSlider::groove:horizontal {
height: 10px;
background: #1e2a44;
border-radius: 3px;
}
/* 已滑过:渐变蓝 */
QSlider::sub-page:horizontal {
background: qlineargradient(
x1:0, y1:0, x2:1, y2:0,
stop:0 #1f4fff,
stop:0.5 #2f6bff,
stop:1 #5fa0ff
);
border-radius: 3px;
}
/* 未滑过 */
QSlider::add-page:horizontal {
height: 10px;
background: #2a3550;
border-radius: 3px;
}
/* ===== 滑块按钮 ===== */
QSlider::handle:horizontal {
width: 15px;
height: 10px;
/* 蓝色实心 */
background: #2f6bff;
/* 白色外圈 */
border: 2px solid #ffffff;
border-radius: 5px;
/* 垂直居中 */
margin: -5px 0;
}
/* 悬停 */
QSlider::handle:horizontal:hover {
background: #4d8dff;
}
/* 按下 */
QSlider::handle:horizontal:pressed {
background: #1f4fff;
}</string>
</property>
<attribute name="title"> <attribute name="title">
<string>光谱仪</string> <string>光谱仪</string>
</attribute> </attribute>
<layout class="QGridLayout" name="gridLayout_4"> <layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>10</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>10</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>10</number>
</property>
<property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_10"> <widget class="QLabel" name="label_4">
<item> <property name="text">
<widget class="QLabel" name="label"> <string/>
<property name="sizePolicy"> </property>
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <property name="pixmap">
<horstretch>0</horstretch> <pixmap resource="HPPA.qrc">:/HPPA/HPPA.ico</pixmap>
<verstretch>0</verstretch> </property>
</sizepolicy> <property name="alignment">
</property> <set>Qt::AlignCenter</set>
<property name="minimumSize"> </property>
<size> </widget>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>帧率</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="framerate_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
</widget>
</item>
</layout>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_11"> <widget class="QWidget" name="widget_3" native="true">
<item> <property name="sizePolicy">
<spacer name="horizontalSpacer_16"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<property name="orientation"> <horstretch>0</horstretch>
<enum>Qt::Horizontal</enum> <verstretch>0</verstretch>
</property> </sizepolicy>
<property name="sizeType"> </property>
<enum>QSizePolicy::Fixed</enum> <layout class="QGridLayout" name="gridLayout">
</property> <property name="leftMargin">
<property name="sizeHint" stdset="0"> <number>0</number>
<size> </property>
<width>100</width> <property name="topMargin">
<height>20</height> <number>0</number>
</size> </property>
</property> <property name="rightMargin">
</spacer> <number>0</number>
</item> </property>
<item> <property name="bottomMargin">
<widget class="QDoubleSlider" name="FramerateSlider"> <number>0</number>
<property name="orientation"> </property>
<enum>Qt::Horizontal</enum> <property name="horizontalSpacing">
</property> <number>2</number>
</widget> </property>
</item> <property name="verticalSpacing">
</layout> <number>6</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>帧率</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="framerate_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSlider" name="FramerateSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>积分时间</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="integratioin_time_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSlider" name="IntegratioinTimeSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>gain</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLineEdit" name="gain_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSlider" name="GainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item> </item>
<item row="2" column="0"> </layout>
<layout class="QHBoxLayout" name="horizontalLayout_12"> </widget>
<item> <widget class="QWidget" name="rgbCameraWidget">
<widget class="QLabel" name="label_2"> <property name="styleSheet">
<property name="maximumSize"> <string notr="true">QGroupBox
<size> {
<width>100</width> border: 12px solid transparent;
<height>16777215</height> color: #ACCDFF;
</size> }
QPushButton
{
/*width: 172px;
height: 56px;*/
font: 19pt &quot;新宋体&quot;;
background-color: qlineargradient(
spread:pad,
x1:0.5, y1:0, x2:0.5, y2:1,
stop:0 #283D86,
stop:1 #0F1A40
);
color: white;
border: none;
padding: 8px 16px;
border-radius: 4px;
}
QPushButton:hover
{
background-color: qlineargradient(
spread:pad,
x1:0, y1:0, x2:1, y2:0,
stop:0 #3A4875,
stop:1 #5F6B91
);
}
/* 按下时的效果 */
QPushButton:pressed
{
background-color: qlineargradient(
spread:pad,
x1:0, y1:0, x2:1, y2:0,
stop:0 #1A254F,
stop:1 #3A466B
);
/* 可选:添加下压效果 */
padding-top: 9px;
padding-bottom: 7px;
}</string>
</property>
<attribute name="title">
<string>rgb相机</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4" rowstretch="2,4,2" columnstretch="1,3,1">
<item row="0" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>174</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>115</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<layout class="QGridLayout" name="gridLayout_3" columnstretch="1,1">
<property name="spacing">
<number>20</number>
</property>
<item row="1" column="0">
<widget class="QPushButton" name="take_video_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>积分时间</string> <string>录制视频</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="1" column="1">
<widget class="QLineEdit" name="integratioin_time_lineEdit"> <widget class="QPushButton" name="take_photo_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_13">
<item>
<spacer name="horizontalSpacer_17">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>100</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDoubleSlider" name="IntegratioinTimeSlider">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text"> <property name="text">
<string>gain</string> <string>拍照</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="0" column="1">
<widget class="QLineEdit" name="gain_lineEdit"> <widget class="QPushButton" name="close_rgb_camera_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet"> <property name="text">
<string notr="true">background-color: rgb(255, 255, 255);</string> <string>关闭</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="open_rgb_camera_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>打开</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="5" column="0"> <item row="1" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_15"> <spacer name="horizontalSpacer_2">
<item> <property name="orientation">
<spacer name="horizontalSpacer_18"> <enum>Qt::Horizontal</enum>
<property name="orientation"> </property>
<enum>Qt::Horizontal</enum> <property name="sizeHint" stdset="0">
</property> <size>
<property name="sizeType"> <width>115</width>
<enum>QSizePolicy::Fixed</enum> <height>20</height>
</property> </size>
<property name="sizeHint" stdset="0"> </property>
<size> </spacer>
<width>100</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDoubleSlider" name="GainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item> </item>
<item row="6" column="0"> <item row="2" column="1">
<spacer name="verticalSpacer_2"> <spacer name="verticalSpacer_2">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@ -526,18 +805,13 @@ QToolBar QToolButton:hover {
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>594</height> <height>173</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -6,114 +6,246 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>294</width> <width>432</width>
<height>119</height> <height>346</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>PowerControl</string> <string>PowerControl</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <property name="styleSheet">
<property name="leftMargin"> <string notr="true">QGroupBox
<number>0</number> {
</property> border: 12px solid transparent;
<property name="topMargin"> color: #ACCDFF;
<number>0</number> }
</property>
<property name="rightMargin"> QPushButton
<number>0</number> {
</property> /*width: 172px;
<property name="bottomMargin"> height: 56px;*/
<number>0</number> font: 19pt &quot;新宋体&quot;;
</property> background-color: qlineargradient(
<property name="spacing"> spread:pad,
<number>0</number> x1:0.5, y1:0, x2:0.5, y2:1,
</property> stop:0 #283D86,
<item row="0" column="0"> stop:1 #0F1A40
<layout class="QHBoxLayout" name="horizontalLayout_20"> );
<item> color: white;
<widget class="QLabel" name="label_17"> border: none;
<property name="text"> padding: 8px 16px;
<string>卤素灯</string> border-radius: 4px;
</property> }
</widget> QPushButton:hover
</item> {
<item> background-color: qlineargradient(
<widget class="QPushButton" name="lamp_power_open_btn"> spread:pad,
<property name="text"> x1:0, y1:0, x2:1, y2:0,
<string>打开</string> stop:0 #3A4875,
</property> stop:1 #5F6B91
</widget> );
</item> }
<item> /* 按下时的效果 */
<widget class="QPushButton" name="lamp_power_close_btn"> QPushButton:pressed
<property name="text"> {
<string>关闭</string> background-color: qlineargradient(
</property> spread:pad,
</widget> x1:0, y1:0, x2:1, y2:0,
</item> stop:0 #1A254F,
<item> stop:1 #3A466B
<spacer name="horizontalSpacer_19"> );
<property name="orientation"> /* 可选:添加下压效果 */
<enum>Qt::Horizontal</enum> padding-top: 9px;
</property> padding-bottom: 7px;
<property name="sizeHint" stdset="0"> }</string>
<size> </property>
<width>40</width> <layout class="QGridLayout" name="gridLayout_3" rowstretch="1,1,1,1" columnstretch="1,3,1">
<height>20</height> <item row="0" column="1">
</size> <spacer name="verticalSpacer">
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_21">
<item>
<widget class="QLabel" name="label_18">
<property name="text">
<string>马 达</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="motor_power_open_btn">
<property name="text">
<string>打开</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="motor_power_close_btn">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_20">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>42</height> <height>145</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>151</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>卤素灯</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>20</number>
</property>
<item row="0" column="0">
<widget class="QPushButton" name="lamp_power_open_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>打开</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="lamp_power_close_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>151</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>151</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>马 达</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>20</number>
</property>
<item row="0" column="0">
<widget class="QPushButton" name="motor_power_open_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>打开</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="motor_power_close_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>151</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>144</height>
</size> </size>
</property> </property>
</spacer> </spacer>

View File

@ -48,7 +48,8 @@ void TabManager::showTab(QWidget* page)
TabInfo info = m_hiddenTabs.take(page); TabInfo info = m_hiddenTabs.take(page);
int insertIndex = qMin(info.index, m_tabWidget->count()); //int insertIndex = qMin(info.index, m_tabWidget->count());
int insertIndex = m_tabWidget->count();
m_tabWidget->insertTab(insertIndex, page, info.icon, info.text); m_tabWidget->insertTab(insertIndex, page, info.icon, info.text);
m_tabWidget->setTabToolTip(insertIndex, info.toolTip); m_tabWidget->setTabToolTip(insertIndex, info.toolTip);

View File

@ -5,7 +5,6 @@ TwoMotorControl::TwoMotorControl(QWidget* parent) : QDialog(parent)
ui.setupUi(this); ui.setupUi(this);
ui.recordLine_tableWidget->setFocusPolicy(Qt::NoFocus); ui.recordLine_tableWidget->setFocusPolicy(Qt::NoFocus);
ui.recordLine_tableWidget->setStyleSheet("selection-background-color:rgb(255,209,128)");//设置选择的行高亮
ui.recordLine_tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选择行为,以行为单位 ui.recordLine_tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选择行为,以行为单位
//ui.recordLine_tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);//设置选择模式,选择单行 //ui.recordLine_tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);//设置选择模式,选择单行
@ -16,13 +15,9 @@ TwoMotorControl::TwoMotorControl(QWidget* parent) : QDialog(parent)
connect(ui.addRecordLine_btn, SIGNAL(clicked()), this, SLOT(onAddRecordLine_btn())); connect(ui.addRecordLine_btn, SIGNAL(clicked()), this, SLOT(onAddRecordLine_btn()));
connect(ui.removeRecordLine_btn, SIGNAL(clicked()), this, SLOT(onRemoveRecordLine_btn())); connect(ui.removeRecordLine_btn, SIGNAL(clicked()), this, SLOT(onRemoveRecordLine_btn()));
connect(ui.generateRecordLine_btn, SIGNAL(clicked()), this, SLOT(onGenerateRecordLine_btn()));
connect(ui.deleteRecordLine_btn, SIGNAL(clicked()), this, SLOT(onDeleteRecordLine_btn())); connect(ui.deleteRecordLine_btn, SIGNAL(clicked()), this, SLOT(onDeleteRecordLine_btn()));
connect(ui.saveRecordLine2File_btn, SIGNAL(clicked()), this, SLOT(onSaveRecordLine2File_btn())); connect(ui.saveRecordLine2File_btn, SIGNAL(clicked()), this, SLOT(onSaveRecordLine2File_btn()));
connect(ui.readRecordLineFile_btn, SIGNAL(clicked()), this, SLOT(onReadRecordLineFile_btn())); connect(ui.readRecordLineFile_btn, SIGNAL(clicked()), this, SLOT(onReadRecordLineFile_btn()));
connect(ui.run_btn, SIGNAL(clicked()), this, SLOT(run()));
connect(ui.stop_btn, SIGNAL(clicked()), this, SLOT(stop()));
} }
void TwoMotorControl::setImager(ImagerOperationBase* imager) void TwoMotorControl::setImager(ImagerOperationBase* imager)
@ -395,93 +390,6 @@ void TwoMotorControl::onRemoveRecordLine_btn()
ui.recordLine_tableWidget->removeRow(rowIndex); ui.recordLine_tableWidget->removeRow(rowIndex);
} }
void TwoMotorControl::onGenerateRecordLine_btn()
{
//求幅宽
double height = ui.height_lineEdit->text().toDouble();
double fov = ui.fov_lineEdit->text().toDouble();
double swath = (height * tan(fov / 2 * PI / 180)) * 2;//tan输入是弧度
ui.swath_lineEdit->setText(QString::number(swath));
//读取马达测量范围
double xMotorRange = 50;
double yMotorRange = 500;
//确定有多少条采集线公式numberOfRecordLine_tmp * swath - repetitiveLengthnumberOfRecordLine_tmp - 1 = overallLength
double overallLength = yMotorRange + swath;
double repetitiveRate = ui.repetitiveRate_lineEdit->text().toDouble() / 100;
double repetitiveLength = repetitiveRate * swath;
double offset = ui.offset_lineEdit->text().toDouble();
double numberOfRecordLine_tmp = (overallLength - repetitiveLength - offset) / (swath - repetitiveLength);
double tmp = numberOfRecordLine_tmp - (int)numberOfRecordLine_tmp;
int numberOfRecordLine;
double threshold = ui.LastLineThreshold_lineEdit->text().toDouble();//当numberOfRecordLine_tmp为小数时判断是否多加一条采集线
if (tmp > threshold)
{
numberOfRecordLine = (int)numberOfRecordLine_tmp + 1;
//std::cout << "大于:" << threshold << std::endl;
}
else
{
numberOfRecordLine = (int)numberOfRecordLine_tmp;
}
//去掉tableWidget中所有的行
int rowCount = ui.recordLine_tableWidget->rowCount();
for (size_t i = 0; i < rowCount; i++)
{
ui.recordLine_tableWidget->removeRow(0);
}
//向tableWidget添加行采集线
QTableWidgetItem* tmpItem;
for (size_t i = 0; i < numberOfRecordLine; i++)
{
//增加一行
int RowCount = ui.recordLine_tableWidget->rowCount();
ui.recordLine_tableWidget->insertRow(RowCount);
//设置yPosition
if (tmp > threshold && i == numberOfRecordLine - 1)//设置最后一行的yPosition
{
tmpItem = new QTableWidgetItem(QString::number(yMotorRange, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 0, tmpItem);
}
else
{
double x = swath * i - i * repetitiveLength + offset;
tmpItem = new QTableWidgetItem(QString::number(x, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 0, tmpItem);
}
tmpItem = new QTableWidgetItem(QString::number(1, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 1, tmpItem);
tmpItem = new QTableWidgetItem(QString::number(0, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 2, tmpItem);
tmpItem = new QTableWidgetItem(QString::number(1, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 3, tmpItem);
//设置x马达最大运动位置 → 值设置为x马达量程
tmpItem = new QTableWidgetItem(QString::number(xMotorRange, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 4, tmpItem);
tmpItem = new QTableWidgetItem(QString::number(1, 10, 2));
tmpItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui.recordLine_tableWidget->setItem(i, 5, tmpItem);
}
}
void TwoMotorControl::onDeleteRecordLine_btn() void TwoMotorControl::onDeleteRecordLine_btn()
{ {
int rowCount = ui.recordLine_tableWidget->rowCount(); int rowCount = ui.recordLine_tableWidget->rowCount();
@ -500,19 +408,12 @@ void TwoMotorControl::onSaveRecordLine2File_btn()
return; return;
} }
double height = ui.height_lineEdit->text().toDouble();
double fov = ui.fov_lineEdit->text().toDouble();
double swath = ui.swath_lineEdit->text().toDouble();
double offset = ui.offset_lineEdit->text().toDouble();
double repetitiveRate = ui.repetitiveRate_lineEdit->text().toDouble();
double LastLineThreshold = ui.LastLineThreshold_lineEdit->text().toDouble();
FileOperation* fileOperation = new FileOperation(); FileOperation* fileOperation = new FileOperation();
string directory = fileOperation->getDirectoryOfExe(); string directory = fileOperation->getDirectoryOfExe();
QString RecordLineFilePath = QFileDialog::getSaveFileName(this, tr("Save RecordLine2 File"), QString RecordLineFilePath = QFileDialog::getSaveFileName(this, tr("Save RecordLine3 File"),
QString::fromStdString(directory), QString::fromStdString(directory),
tr("RecordLineFile2 (*.RecordLine2)")); tr("RecordLineFile3 (*.RecordLine3)"));
if (RecordLineFilePath.isEmpty()) if (RecordLineFilePath.isEmpty())
{ {
@ -521,13 +422,6 @@ void TwoMotorControl::onSaveRecordLine2File_btn()
FILE* RecordLineFileHandle = fopen(RecordLineFilePath.toStdString().c_str(), "wb+"); FILE* RecordLineFileHandle = fopen(RecordLineFilePath.toStdString().c_str(), "wb+");
fwrite(&height, sizeof(double), 1, RecordLineFileHandle);
fwrite(&fov, sizeof(double), 1, RecordLineFileHandle);
fwrite(&swath, sizeof(double), 1, RecordLineFileHandle);
fwrite(&offset, sizeof(double), 1, RecordLineFileHandle);
fwrite(&repetitiveRate, sizeof(double), 1, RecordLineFileHandle);
fwrite(&LastLineThreshold, sizeof(double), 1, RecordLineFileHandle);
double number = ui.recordLine_tableWidget->rowCount() * ui.recordLine_tableWidget->columnCount(); double number = ui.recordLine_tableWidget->rowCount() * ui.recordLine_tableWidget->columnCount();
fwrite(&number, sizeof(double), 1, RecordLineFileHandle); fwrite(&number, sizeof(double), 1, RecordLineFileHandle);
@ -555,9 +449,9 @@ void TwoMotorControl::onReadRecordLineFile_btn()
FileOperation* fileOperation = new FileOperation(); FileOperation* fileOperation = new FileOperation();
string directory = fileOperation->getDirectoryOfExe(); string directory = fileOperation->getDirectoryOfExe();
QString RecordLineFilePath = QFileDialog::getOpenFileName(this, tr("Open RecordLine2 File"), QString RecordLineFilePath = QFileDialog::getOpenFileName(this, tr("Open RecordLine3 File"),
QString::fromStdString(directory), QString::fromStdString(directory),
tr("RecordLineFile (*.RecordLine2)")); tr("RecordLineFile (*.RecordLine3)"));
if (RecordLineFilePath.isEmpty()) if (RecordLineFilePath.isEmpty())
{ {
@ -565,15 +459,9 @@ void TwoMotorControl::onReadRecordLineFile_btn()
} }
FILE* RecordLineFileHandle = fopen(RecordLineFilePath.toStdString().c_str(), "rb"); FILE* RecordLineFileHandle = fopen(RecordLineFilePath.toStdString().c_str(), "rb");
double height, fov, swath, offset, repetitiveRate, LastLineThreshold, number; double number;
//读取数据 //读取数据
fread(&height, sizeof(double), 1, RecordLineFileHandle);
fread(&fov, sizeof(double), 1, RecordLineFileHandle);
fread(&swath, sizeof(double), 1, RecordLineFileHandle);
fread(&offset, sizeof(double), 1, RecordLineFileHandle);
fread(&repetitiveRate, sizeof(double), 1, RecordLineFileHandle);
fread(&LastLineThreshold, sizeof(double), 1, RecordLineFileHandle);
fread(&number, sizeof(double), 1, RecordLineFileHandle); fread(&number, sizeof(double), 1, RecordLineFileHandle);
double* data = new double[number]; double* data = new double[number];
@ -583,15 +471,6 @@ void TwoMotorControl::onReadRecordLineFile_btn()
//std::cout << *(data + i) << std::endl; //std::cout << *(data + i) << std::endl;
} }
//向界面中填写
ui.height_lineEdit->setText(QString::number(height));
ui.fov_lineEdit->setText(QString::number(fov));
ui.swath_lineEdit->setText(QString::number(swath));
ui.offset_lineEdit->setText(QString::number(offset));
ui.repetitiveRate_lineEdit->setText(QString::number(repetitiveRate));
ui.LastLineThreshold_lineEdit->setText(QString::number(LastLineThreshold));
//向tableWidget添加采集线 //向tableWidget添加采集线
//1去掉tableWidget中所有的行 //1去掉tableWidget中所有的行
int rowCount = ui.recordLine_tableWidget->rowCount(); int rowCount = ui.recordLine_tableWidget->rowCount();

View File

@ -57,7 +57,6 @@ public Q_SLOTS:
void onAddRecordLine_btn(); void onAddRecordLine_btn();
void onRemoveRecordLine_btn(); void onRemoveRecordLine_btn();
void onGenerateRecordLine_btn();
void onDeleteRecordLine_btn(); void onDeleteRecordLine_btn();
void onSaveRecordLine2File_btn(); void onSaveRecordLine2File_btn();
void onReadRecordLineFile_btn(); void onReadRecordLineFile_btn();

View File

@ -18,7 +18,8 @@ View3DBase::View3DBase(const QString& baseModelPath,
{ {
m_view = new Qt3DExtras::Qt3DWindow(); m_view = new Qt3DExtras::Qt3DWindow();
// 部分 Qt5.9 构建可能需要强转 frame graph但 defaultFrameGraph() 通常可用 // 部分 Qt5.9 构建可能需要强转 frame graph但 defaultFrameGraph() 通常可用
m_view->defaultFrameGraph()->setClearColor(Qt::white); QColor c1("#0D1233");
m_view->defaultFrameGraph()->setClearColor(c1);
m_rootEntity = new Qt3DCore::QEntity(); m_rootEntity = new Qt3DCore::QEntity();
@ -61,6 +62,18 @@ void View3DBase::setDistance(float distance)
void View3DBase::initScene() void View3DBase::initScene()
{ {
/*auto* lightEntity = new Qt3DCore::QEntity(m_rootEntity);
auto* light = new Qt3DRender::QPointLight(lightEntity);
light->setColor(Qt::white);
light->setIntensity(1.2f);
auto* lightTransform = new Qt3DCore::QTransform(lightEntity);
lightTransform->setTranslation(QVector3D(500, 500, 500));
lightEntity->addComponent(light);
lightEntity->addComponent(lightTransform);*/
// ===== 创建 base 根节点 ===== // ===== 创建 base 根节点 =====
auto* baseModel = new Qt3DCore::QEntity(m_rootEntity); auto* baseModel = new Qt3DCore::QEntity(m_rootEntity);
auto* baseLoader = new Qt3DRender::QSceneLoader(baseModel); auto* baseLoader = new Qt3DRender::QSceneLoader(baseModel);
@ -75,6 +88,15 @@ void View3DBase::initScene()
baseModel->addComponent(baseLoader); baseModel->addComponent(baseLoader);
baseModel->addComponent(m_baseTransform); baseModel->addComponent(m_baseTransform);
connect(baseLoader, &Qt3DRender::QSceneLoader::statusChanged,
this, [=](Qt3DRender::QSceneLoader::Status status) {
if (status == Qt3DRender::QSceneLoader::Ready) {
applyWhiteMaterialRecursive(baseModel);
}
});
// ===== 创建 arm 根节点 ===== // ===== 创建 arm 根节点 =====
auto* armModel = new Qt3DCore::QEntity(m_rootEntity); auto* armModel = new Qt3DCore::QEntity(m_rootEntity);
auto* armLoader = new Qt3DRender::QSceneLoader(armModel); auto* armLoader = new Qt3DRender::QSceneLoader(armModel);
@ -85,6 +107,14 @@ void View3DBase::initScene()
armModel->addComponent(armLoader); armModel->addComponent(armLoader);
armModel->addComponent(m_armTransform); armModel->addComponent(m_armTransform);
connect(armLoader, &Qt3DRender::QSceneLoader::statusChanged,
this, [=](Qt3DRender::QSceneLoader::Status status) {
if (status == Qt3DRender::QSceneLoader::Ready) {
applyWhiteMaterialRecursive(armModel);
}
});
// 坐标轴依然挂在 root不会被移动 // 坐标轴依然挂在 root不会被移动
//createAxes(); //createAxes();
@ -100,6 +130,29 @@ void View3DBase::initScene()
qDebug() << m_armTransform->matrix(); qDebug() << m_armTransform->matrix();
} }
void View3DBase::applyWhiteMaterialRecursive(Qt3DCore::QEntity* entity)
{
// 如果这个 entity 有 mesh就给它加白色材质
auto meshes = entity->componentsOfType<Qt3DRender::QGeometryRenderer>();
if (!meshes.isEmpty()) {
auto* mat = new Qt3DExtras::QPhongMaterial(entity);
QColor c1("#cccccc");
mat->setDiffuse(c1);
mat->setAmbient(c1);
mat->setSpecular(c1);
mat->setShininess(50.0f);
entity->addComponent(mat);
}
// 递归处理子节点
const auto children = entity->children();
for (QObject* obj : children) {
auto* childEntity = qobject_cast<Qt3DCore::QEntity*>(obj);
if (childEntity)
applyWhiteMaterialRecursive(childEntity);
}
}
void View3DBase::createAxes() void View3DBase::createAxes()
{ {
// 参数 // 参数

View File

@ -16,6 +16,7 @@
#include <Qt3DExtras/QPhongMaterial> #include <Qt3DExtras/QPhongMaterial>
#include <Qt3DRender/QSceneLoader> #include <Qt3DRender/QSceneLoader>
#include <Qt3DExtras/QCylinderMesh> #include <Qt3DExtras/QCylinderMesh>
#include <QPointLight>
class View3DBase : public QWidget class View3DBase : public QWidget
{ {
@ -67,6 +68,8 @@ protected:
Qt3DCore::QTransform* m_baseRootTransform = nullptr; Qt3DCore::QTransform* m_baseRootTransform = nullptr;
Qt3DCore::QTransform* m_armRootTransform = nullptr; Qt3DCore::QTransform* m_armRootTransform = nullptr;
void applyWhiteMaterialRecursive(Qt3DCore::QEntity* entity);
public Q_SLOTS: public Q_SLOTS:
virtual void setLoc(std::vector<double> loc) = 0; virtual void setLoc(std::vector<double> loc) = 0;
}; };

View File

@ -6,24 +6,127 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>687</width> <width>501</width>
<height>389</height> <height>363</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>adjustTable</string> <string>adjustTable</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <property name="styleSheet">
<item row="0" column="0"> <string notr="true">QGroupBox
{
border: 12px solid transparent;
/*border-top: 12px solid transparent;
border-right: 0px solid transparent;
border-bottom: 0px solid transparent;
border-left: 0px solid transparent;*/
color: #ACCDFF;
}
QPushButton
{
/*width: 172px;
height: 56px;*/
font: 19pt &quot;新宋体&quot;;
background-color: qlineargradient(
spread:pad,
x1:0.5, y1:0, x2:0.5, y2:1,
stop:0 #283D86,
stop:1 #0F1A40
);
color: white;
border: none;
padding: 8px 16px;
border-radius: 4px;
}
QPushButton:hover
{
background-color: qlineargradient(
spread:pad,
x1:0, y1:0, x2:1, y2:0,
stop:0 #3A4875,
stop:1 #5F6B91
);
}
/* 按下时的效果 */
QPushButton:pressed
{
background-color: qlineargradient(
spread:pad,
x1:0, y1:0, x2:1, y2:0,
stop:0 #1A254F,
stop:1 #3A466B
);
/* 可选:添加下压效果 */
padding-top: 9px;
padding-bottom: 7px;
}</string>
</property>
<layout class="QGridLayout" name="gridLayout_4" rowstretch="1,2,2,2,1" columnstretch="1,10,1">
<item row="0" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>66</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>63</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="groupBox_8"> <widget class="QGroupBox" name="groupBox_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title"> <property name="title">
<string>252号升降台</string> <string>252号升降台</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_10"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>18</number>
</property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QPushButton" name="objective_table252_up_btn"> <widget class="QPushButton" name="objective_table252_up_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -33,10 +136,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="0" column="1">
<widget class="QPushButton" name="objective_table252_down_btn"> <widget class="QPushButton" name="objective_table252_down_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -46,10 +149,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="0" column="2">
<widget class="QPushButton" name="objective_table252_stop_btn"> <widget class="QPushButton" name="objective_table252_stop_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -62,16 +165,63 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="1" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>63</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>63</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox_7"> <widget class="QGroupBox" name="groupBox_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title"> <property name="title">
<string>253号升降台</string> <string>253号升降台</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_11"> <layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>18</number>
</property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QPushButton" name="objective_table1_up_btn"> <widget class="QPushButton" name="objective_table1_up_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -81,10 +231,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="0" column="1">
<widget class="QPushButton" name="objective_table1_down_btn"> <widget class="QPushButton" name="objective_table1_down_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -94,10 +244,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="0" column="2">
<widget class="QPushButton" name="objective_table1_stop_btn"> <widget class="QPushButton" name="objective_table1_stop_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -110,16 +260,63 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="2" column="2">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>63</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>63</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="1">
<widget class="QGroupBox" name="groupBox_6"> <widget class="QGroupBox" name="groupBox_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title"> <property name="title">
<string>254号升降台</string> <string>254号升降台</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_9"> <layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>18</number>
</property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QPushButton" name="objective_table2_up_btn"> <widget class="QPushButton" name="objective_table2_up_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -129,10 +326,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="0" column="1">
<widget class="QPushButton" name="objective_table2_down_btn"> <widget class="QPushButton" name="objective_table2_down_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -142,10 +339,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="0" column="2">
<widget class="QPushButton" name="objective_table2_stop_btn"> <widget class="QPushButton" name="objective_table2_stop_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -158,6 +355,32 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="3" column="2">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>63</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>65</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>

View File

@ -6,217 +6,313 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>544</width> <width>678</width>
<height>346</height> <height>480</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>一轴马达控制</string> <string>一轴马达控制</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <property name="styleSheet">
<item row="0" column="0"> <string notr="true">QPushButton
<layout class="QHBoxLayout" name="horizontalLayout"> {
<item> /*width: 172px;
<layout class="QVBoxLayout" name="verticalLayout"> height: 56px;
<item> font: 19pt &quot;新宋体&quot;;*/
<widget class="QLabel" name="label"> background-color: qlineargradient(
<property name="text"> spread:pad,
<string>实时位置</string> x1:0.5, y1:0, x2:0.5, y2:1,
</property> stop:0 #283D86,
<property name="alignment"> stop:1 #0F1A40
<set>Qt::AlignCenter</set> );
</property> color: white;
</widget> padding: 8px 16px;
</item> border-radius: 4px;
<item> }
<widget class="QLabel" name="label_6"> QPushButton:hover
<property name="text"> {
<string>运行速度</string> background-color: qlineargradient(
</property> spread:pad,
<property name="alignment"> x1:0, y1:0, x2:1, y2:0,
<set>Qt::AlignCenter</set> stop:0 #3A4875,
</property> stop:1 #5F6B91
</widget> );
</item> }
<item> /* 按下时的效果 */
<widget class="QLabel" name="label_7"> QPushButton:pressed
<property name="text"> {
<string>返回速度</string> background-color: qlineargradient(
</property> spread:pad,
<property name="alignment"> x1:0, y1:0, x2:1, y2:0,
<set>Qt::AlignCenter</set> stop:0 #1A254F,
</property> stop:1 #3A466B
</widget> );
</item> /* 可选:添加下压效果 */
<item> padding-top: 9px;
<widget class="QLabel" name="label_4"> padding-bottom: 7px;
<property name="text"> }
<string/> QLabel
</property> {
<property name="alignment"> color: #ACCDFF;
<set>Qt::AlignCenter</set> background-color: transparent;
</property> }
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2"> QLineEdit {
<item> background-color: #142D7F;
<widget class="QLineEdit" name="realTimeLoc_lineEdit"> color: #e6eeff;
<property name="text"> border: 1px solid #2f6bff;
<string>0</string> border-radius: 6px;
</property> padding: 4px 8px;
<property name="alignment"> min-width: 70px;
<set>Qt::AlignCenter</set> min-height: 20px;
</property> font-size: 13px;
</widget> }
</item> QLineEdit:hover {
<item> border: 1px solid #4d8dff;
<widget class="QLineEdit" name="speed_lineEdit"> }
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> QLineEdit:focus {
<horstretch>0</horstretch> border: 1px solid #6aa2ff;
<verstretch>0</verstretch> background-color: #23345c;
</sizepolicy> }</string>
</property> </property>
<property name="minimumSize"> <layout class="QGridLayout" name="gridLayout_2" rowstretch="1,3,1" columnstretch="1,3,1">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>0.1</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="return_speed_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>2</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="move2loc_lineEdit">
<property name="text">
<string>0</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QPushButton" name="connect_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>连接</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="zero_start_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>归零</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="rangeMeasurement_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>量程测量</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="move2loc_pushButton">
<property name="text">
<string>移动至</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="0" column="1"> <item row="0" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>87</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer"> <spacer name="horizontalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>161</width> <width>127</width>
<height>20</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="1" column="0"> <item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QGridLayout" name="gridLayout">
<item> <property name="spacing">
<number>10</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>实时位置</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="realTimeLoc_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>88</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>0</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="connect_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>连接</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>运行速度</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="speed_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>88</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>0.1</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="zero_start_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>归零</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>返回速度</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="return_speed_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>88</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>2</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="rangeMeasurement_btn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>量程测量</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="move2loc_lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>88</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>0</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="move2loc_pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>移动至</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="left_btn"> <widget class="QPushButton" name="left_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -226,10 +322,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="4" column="2">
<widget class="QPushButton" name="right_btn"> <widget class="QPushButton" name="right_btn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -239,41 +335,64 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout> <item row="5" column="2">
</item> <layout class="QHBoxLayout" name="horizontalLayout">
<item row="2" column="0"> <item>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <widget class="QLabel" name="label_2">
<item> <property name="text">
<spacer name="horizontalSpacer_2"> <string>状态</string>
<property name="orientation"> </property>
<enum>Qt::Horizontal</enum> </widget>
</property> </item>
<property name="sizeHint" stdset="0"> <item>
<size> <widget class="QLabel" name="motor_state_label">
<width>40</width> <property name="maximumSize">
<height>20</height> <size>
</size> <width>8</width>
</property> <height>8</height>
</spacer> </size>
</item> </property>
<item> <property name="sizeIncrement">
<widget class="QLabel" name="motor_state_label"> <size>
<property name="text"> <width>8</width>
<string>马达状态</string> <height>8</height>
</property> </size>
</widget> </property>
<property name="styleSheet">
<string notr="true">background-color: red;
border-radius: 4px;</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
<item row="3" column="0"> <item row="1" column="2">
<spacer name="verticalSpacer"> <spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>127</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>191</height> <height>87</height>
</size> </size>
</property> </property>
</spacer> </spacer>

File diff suppressed because it is too large Load Diff