修改界面:
1、右下角看板通过tabwidget管理很多可扩展控制页面; 2、定制右下角放大功能:占用右上角的看板空间;
This commit is contained in:
@ -102,6 +102,7 @@ void CustomDockWidgetBase::toggleMaximize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_isMaximized = true;
|
m_isMaximized = true;
|
||||||
|
emit maximizeStateChanged(m_isMaximized);
|
||||||
m_maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarNormalButton));
|
m_maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarNormalButton));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -126,10 +127,78 @@ void CustomDockWidgetBase::toggleMaximize()
|
|||||||
heights.append(it.value().height());
|
heights.append(it.value().height());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_mainWindow->resizeDocks(docks, widths, Qt::Horizontal);
|
||||||
|
m_mainWindow->resizeDocks(docks, heights, Qt::Vertical);
|
||||||
|
|
||||||
|
m_isMaximized = false;
|
||||||
|
emit maximizeStateChanged(m_isMaximized);
|
||||||
|
m_maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CustomDockWidgetHideAbove::CustomDockWidgetHideAbove(QString title, QMainWindow* parent)
|
||||||
|
:CustomDockWidgetBase(title, parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
CustomDockWidgetHideAbove::CustomDockWidgetHideAbove(QMainWindow* parent)
|
||||||
|
:CustomDockWidgetBase(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CustomDockWidgetHideAbove::toggleMaximize()
|
||||||
|
{
|
||||||
|
if (!m_isMaximized)
|
||||||
|
{
|
||||||
|
m_hiddenDocks.clear();
|
||||||
|
m_originalSizes.clear();
|
||||||
|
|
||||||
|
m_savedState = m_mainWindow->saveState();
|
||||||
|
|
||||||
|
const QList<QDockWidget*> docks = m_mainWindow->findChildren<QDockWidget*>();
|
||||||
|
for (QDockWidget* dock : docks)
|
||||||
|
{
|
||||||
|
m_originalSizes[dock] = dock->size();
|
||||||
|
if (dock->objectName().contains("mDockWidgetRGBCamera") && dock->isVisible())
|
||||||
|
{
|
||||||
|
dock->hide();
|
||||||
|
m_hiddenDocks.append(dock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_isMaximized = true;
|
||||||
|
emit maximizeStateChanged(m_isMaximized);
|
||||||
|
m_maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarNormalButton));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (QDockWidget* dock : m_hiddenDocks)
|
||||||
|
{
|
||||||
|
dock->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!m_savedState.isEmpty())
|
||||||
|
{
|
||||||
|
m_mainWindow->restoreState(m_savedState);
|
||||||
|
m_savedState.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
//QList<QDockWidget*> docks;
|
||||||
|
//QList<int> widths, heights;
|
||||||
|
//for (auto it = m_originalSizes.begin(); it != m_originalSizes.end(); ++it)
|
||||||
|
//{
|
||||||
|
// docks.append(it.key());
|
||||||
|
// widths.append(it.value().width());
|
||||||
|
// heights.append(it.value().height());
|
||||||
|
//}
|
||||||
|
|
||||||
//m_mainWindow->resizeDocks(docks, widths, Qt::Horizontal);
|
//m_mainWindow->resizeDocks(docks, widths, Qt::Horizontal);
|
||||||
//m_mainWindow->resizeDocks(docks, heights, Qt::Vertical);
|
//m_mainWindow->resizeDocks(docks, heights, Qt::Vertical);
|
||||||
|
|
||||||
m_isMaximized = false;
|
m_isMaximized = false;
|
||||||
|
emit maximizeStateChanged(m_isMaximized);
|
||||||
m_maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
|
m_maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,10 +18,13 @@ public:
|
|||||||
void setTile(QString title);
|
void setTile(QString title);
|
||||||
void hideMaxButton();
|
void hideMaxButton();
|
||||||
|
|
||||||
private slots:
|
public slots:
|
||||||
void toggleMaximize();
|
virtual void toggleMaximize();
|
||||||
|
|
||||||
private:
|
signals:
|
||||||
|
void maximizeStateChanged(bool isMaximized);
|
||||||
|
|
||||||
|
protected:
|
||||||
QMainWindow* m_mainWindow = nullptr;
|
QMainWindow* m_mainWindow = nullptr;
|
||||||
QToolButton* m_maxButton = nullptr;
|
QToolButton* m_maxButton = nullptr;
|
||||||
bool m_isMaximized = false;
|
bool m_isMaximized = false;
|
||||||
@ -33,3 +36,18 @@ private:
|
|||||||
QLabel* title_label;
|
QLabel* title_label;
|
||||||
void initialize();
|
void initialize();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CustomDockWidgetHideAbove :
|
||||||
|
public CustomDockWidgetBase
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit CustomDockWidgetHideAbove(QString title, QMainWindow* parent = nullptr);
|
||||||
|
explicit CustomDockWidgetHideAbove(QMainWindow* parent = nullptr);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void toggleMaximize();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|||||||
100
HPPA/HPPA.cpp
100
HPPA/HPPA.cpp
@ -247,7 +247,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
|
|
||||||
ui.mDockWidgetRGBCamera->setTile(QString::fromLocal8Bit("<EFBFBD>ֲ<EFBFBD>"));
|
ui.mDockWidgetRGBCamera->setTile(QString::fromLocal8Bit("<EFBFBD>ֲ<EFBFBD>"));
|
||||||
ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3Dģ<EFBFBD><EFBFBD>"));
|
ui.mDockWidgetSimulator->setTile(QString::fromLocal8Bit("3Dģ<EFBFBD><EFBFBD>"));
|
||||||
ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
ui.mDockWidgetSpectrometer->setTile(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||||
|
|
||||||
//TOC
|
//TOC
|
||||||
CustomDockWidgetBase* dock_layers = new CustomDockWidgetBase(QString::fromLocal8Bit("layers"), this);
|
CustomDockWidgetBase* dock_layers = new CustomDockWidgetBase(QString::fromLocal8Bit("layers"), this);
|
||||||
@ -303,7 +303,13 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
gridLayout_hyperimgViewer->setContentsMargins(1, 2, 1, 2);
|
gridLayout_hyperimgViewer->setContentsMargins(1, 2, 1, 2);
|
||||||
|
|
||||||
m_imageViewerTabWidget = new QTabWidget();
|
m_imageViewerTabWidget = new QTabWidget();
|
||||||
|
//m_imageViewerTabWidget->tabBar()->setFixedHeight(40);//û<><C3BB>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>qss<73><73><EFBFBD><EFBFBD><EFBFBD>ø߶Ȳ<DFB6><C8B2><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>Ϊɶ<CEAA><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
m_imageViewerTabWidget->clear();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>tab
|
m_imageViewerTabWidget->clear();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>tab
|
||||||
|
QToolButton* maxButton = new QToolButton();
|
||||||
|
maxButton->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
|
||||||
|
connect(maxButton, SIGNAL(clicked()), dock_hyperimgViewer, SLOT(toggleMaximize()));
|
||||||
|
m_imageViewerTabWidget->setCornerWidget(maxButton, Qt::TopRightCorner);
|
||||||
|
//onCreateTab(0);
|
||||||
//m_imageViewerTabWidget->setTabsClosable(true);//<2F><><EFBFBD><EFBFBD>ÿҳ<C3BF><D2B3><EFBFBD><EFBFBD><EFBFBD>йرհ<D8B1>ť
|
//m_imageViewerTabWidget->setTabsClosable(true);//<2F><><EFBFBD><EFBFBD>ÿҳ<C3BF><D2B3><EFBFBD><EFBFBD><EFBFBD>йرհ<D8B1>ť
|
||||||
connect(m_imageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int)));
|
connect(m_imageViewerTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabWidgetCurrentChanged(int)));
|
||||||
m_imageViewerTabWidget->setStyleSheet(R"(
|
m_imageViewerTabWidget->setStyleSheet(R"(
|
||||||
@ -313,6 +319,7 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
padding: 6px 12px;
|
padding: 6px 12px;
|
||||||
border: none;
|
border: none;
|
||||||
border-bottom: 1px solid #27376C;
|
border-bottom: 1px solid #27376C;
|
||||||
|
height: 18;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTabBar::tab:selected {
|
QTabBar::tab:selected {
|
||||||
@ -404,53 +411,11 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
dock_hyperimgViewer->setWidget(dock_hyperimgViewerWidgetContents);
|
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);
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dock
|
|
||||||
adjustTable* adt = new adjustTable();
|
|
||||||
|
|
||||||
QDockWidget* dock_adt = new QDockWidget(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
initControlTabwidget();
|
||||||
dock_adt->setObjectName("mDockAdjustTable");
|
|
||||||
dock_adt->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
|
||||||
dock_adt->setWidget(adt);
|
|
||||||
mPanelMenu->addAction(dock_adt->toggleViewAction());
|
|
||||||
|
|
||||||
//<2F><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
|
|
||||||
PowerControl* pc = new PowerControl();
|
|
||||||
|
|
||||||
QDockWidget* dock_pc = new QDockWidget(QString::fromLocal8Bit("<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
|
||||||
dock_pc->setObjectName("mDockPowerControl");
|
|
||||||
dock_pc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
|
||||||
dock_pc->setWidget(pc);
|
|
||||||
mPanelMenu->addAction(dock_pc->toggleViewAction());
|
|
||||||
|
|
||||||
//<2F><>е<EFBFBD>ۿ<EFBFBD><DBBF><EFBFBD>
|
|
||||||
rac = new RobotArmControl();
|
|
||||||
connect(rac->robotController, SIGNAL(hsiRecordSignal(int)), this, SLOT(recordFromRobotArm(int)));
|
|
||||||
QDockWidget* dock_rac = new QDockWidget(QString::fromLocal8Bit("<EFBFBD><EFBFBD>е<EFBFBD>ۿ<EFBFBD><EFBFBD><EFBFBD>"), this);
|
|
||||||
dock_rac->setObjectName("mDockRobotArmControl");
|
|
||||||
dock_rac->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
|
||||||
dock_rac->setWidget(rac);
|
|
||||||
mPanelMenu->addAction(dock_rac->toggleViewAction());
|
|
||||||
|
|
||||||
//һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
omc = new OneMotorControl();
|
|
||||||
|
|
||||||
dock_omc = new QDockWidget(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
|
||||||
dock_omc->setObjectName("mDockOneMotorControl");
|
|
||||||
dock_omc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
|
||||||
dock_omc->setWidget(omc);
|
|
||||||
mPanelMenu->addAction(dock_omc->toggleViewAction());
|
|
||||||
|
|
||||||
//2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
tmc = new TwoMotorControl(this);
|
|
||||||
connect(tmc, SIGNAL(startLineNumSignal(int)), this, SLOT(onCreateTab(int)));
|
|
||||||
connect(tmc, SIGNAL(sequenceComplete()), this, SLOT(onsequenceComplete()));
|
|
||||||
dock_tmc = new QDockWidget(QString::fromLocal8Bit("2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
|
||||||
dock_tmc->setObjectName("mDockTwoMotorControl");
|
|
||||||
dock_tmc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
|
||||||
dock_tmc->setWidget(tmc);
|
|
||||||
mPanelMenu->addAction(dock_tmc->toggleViewAction());
|
|
||||||
|
|
||||||
splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal);
|
splitDockWidget(dock_layers, dock_hyperimgViewer, Qt::Horizontal);
|
||||||
splitDockWidget(dock_hyperimgViewer, ui.mDockWidgetRGBCamera, Qt::Horizontal);
|
splitDockWidget(dock_hyperimgViewer, ui.mDockWidgetRGBCamera, Qt::Horizontal);
|
||||||
@ -461,16 +426,6 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
|
|
||||||
splitDockWidget(ui.mDockWidgetRGBCamera, ui.mDockWidgetSpectrometer, Qt::Vertical);
|
splitDockWidget(ui.mDockWidgetRGBCamera, ui.mDockWidgetSpectrometer, Qt::Vertical);
|
||||||
ui.mDockWidgetSpectrometer->show();
|
ui.mDockWidgetSpectrometer->show();
|
||||||
tabifyDockWidget(ui.mDockWidgetSpectrometer, dock_omc);
|
|
||||||
tabifyDockWidget(dock_omc, dock_tmc);
|
|
||||||
tabifyDockWidget(dock_tmc, dock_rac);
|
|
||||||
tabifyDockWidget(dock_rac, dock_pc);
|
|
||||||
tabifyDockWidget(dock_pc, dock_adt);
|
|
||||||
|
|
||||||
dock_tmc->close();
|
|
||||||
dock_rac->close();
|
|
||||||
dock_pc->close();
|
|
||||||
dock_adt->close();
|
|
||||||
|
|
||||||
setStyleSheet(R"(
|
setStyleSheet(R"(
|
||||||
QMainWindow::separator{
|
QMainWindow::separator{
|
||||||
@ -531,6 +486,40 @@ HPPA::HPPA(QWidget* parent)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HPPA::initControlTabwidget()
|
||||||
|
{
|
||||||
|
ui.controlTabWidget->removeTab(1);
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dock
|
||||||
|
adjustTable* adt = new adjustTable();
|
||||||
|
adt->setWindowFlags(Qt::Widget);
|
||||||
|
ui.controlTabWidget->addTab(adt, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||||
|
|
||||||
|
|
||||||
|
//<2F><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
|
||||||
|
PowerControl* pc = new PowerControl();
|
||||||
|
pc->setWindowFlags(Qt::Widget);
|
||||||
|
ui.controlTabWidget->addTab(pc, QString::fromLocal8Bit("<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||||
|
|
||||||
|
//<2F><>е<EFBFBD>ۿ<EFBFBD><DBBF><EFBFBD>
|
||||||
|
rac = new RobotArmControl();
|
||||||
|
connect(rac->robotController, SIGNAL(hsiRecordSignal(int)), this, SLOT(recordFromRobotArm(int)));
|
||||||
|
rac->setWindowFlags(Qt::Widget);
|
||||||
|
ui.controlTabWidget->addTab(rac, QString::fromLocal8Bit("<EFBFBD><EFBFBD>е<EFBFBD>ۿ<EFBFBD><EFBFBD><EFBFBD>"));
|
||||||
|
|
||||||
|
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
omc = new OneMotorControl();
|
||||||
|
omc->setWindowFlags(Qt::Widget);
|
||||||
|
ui.controlTabWidget->addTab(omc, QString::fromLocal8Bit("1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||||
|
|
||||||
|
//2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
tmc = new TwoMotorControl(this);
|
||||||
|
connect(tmc, SIGNAL(startLineNumSignal(int)), this, SLOT(onCreateTab(int)));
|
||||||
|
connect(tmc, SIGNAL(sequenceComplete()), this, SLOT(onsequenceComplete()));
|
||||||
|
tmc->setWindowFlags(Qt::Widget);
|
||||||
|
ui.controlTabWidget->addTab(tmc, QString::fromLocal8Bit("2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||||
|
}
|
||||||
|
|
||||||
void HPPA::recordFromRobotArm(int fileCounter)
|
void HPPA::recordFromRobotArm(int fileCounter)
|
||||||
{
|
{
|
||||||
//qDebug() << "recordFromRobotArm" << fileCounter;
|
//qDebug() << "recordFromRobotArm" << fileCounter;
|
||||||
@ -686,7 +675,6 @@ void HPPA::createOneMotorScenario()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui.mDockWidgetSpectrometer->show();
|
ui.mDockWidgetSpectrometer->show();
|
||||||
dock_omc->show();
|
|
||||||
|
|
||||||
//tabifyDockWidget(ui.mDockWidgetSpectrometer, dock_omc);
|
//tabifyDockWidget(ui.mDockWidgetSpectrometer, dock_omc);
|
||||||
|
|
||||||
|
|||||||
@ -171,6 +171,7 @@ private:
|
|||||||
QMenu* mToolbarMenu = nullptr;
|
QMenu* mToolbarMenu = nullptr;
|
||||||
|
|
||||||
void initPanelToolbar();
|
void initPanelToolbar();
|
||||||
|
void initControlTabwidget();
|
||||||
|
|
||||||
QLineEdit * frame_number;
|
QLineEdit * frame_number;
|
||||||
QLineEdit * m_FilenameLineEdit;
|
QLineEdit * m_FilenameLineEdit;
|
||||||
@ -219,10 +220,7 @@ private:
|
|||||||
RobotArmControl* rac;
|
RobotArmControl* rac;
|
||||||
|
|
||||||
OneMotorControl* omc;
|
OneMotorControl* omc;
|
||||||
QDockWidget* dock_omc;
|
|
||||||
|
|
||||||
TwoMotorControl* tmc;
|
TwoMotorControl* tmc;
|
||||||
QDockWidget* dock_tmc;
|
|
||||||
|
|
||||||
FILE* m_hTimesFile;
|
FILE* m_hTimesFile;
|
||||||
|
|
||||||
|
|||||||
498
HPPA/HPPA.ui
498
HPPA/HPPA.ui
@ -335,7 +335,7 @@ QToolBar QToolButton:hover {
|
|||||||
<set>QDockWidget::AllDockWidgetFeatures</set>
|
<set>QDockWidget::AllDockWidgetFeatures</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>线性平台位置模拟</string>
|
<string>3D模型</string>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
@ -376,255 +376,283 @@ QToolBar QToolButton:hover {
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="CustomDockWidgetBase" name="mDockWidgetSpectrometer">
|
<widget class="CustomDockWidgetHideAbove" name="mDockWidgetSpectrometer">
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true"/>
|
<string notr="true"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>光谱仪</string>
|
<string>控制</string>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="QWidget" name="dockWidgetContents_4">
|
<widget class="QWidget" name="dockWidgetContents_4">
|
||||||
<layout class="QGridLayout" name="gridLayout_13">
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>9</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="topMargin">
|
<property name="topMargin">
|
||||||
<number>9</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="rightMargin">
|
<property name="rightMargin">
|
||||||
<number>9</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>9</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="spacing">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_11">
|
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer_16">
|
|
||||||
<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="FramerateSlider">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
<widget class="QTabWidget" name="controlTabWidget">
|
||||||
<item>
|
<property name="tabPosition">
|
||||||
<widget class="QLabel" name="label">
|
<enum>QTabWidget::South</enum>
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" 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>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 row="2" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_2">
|
|
||||||
<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="integratioin_time_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 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">
|
|
||||||
<string>gain</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="gain_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 row="5" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer_18">
|
|
||||||
<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="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 row="6" column="0">
|
|
||||||
<spacer name="verticalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<widget class="QWidget" name="tab">
|
||||||
<size>
|
<attribute name="title">
|
||||||
<width>20</width>
|
<string>光谱仪</string>
|
||||||
<height>123</height>
|
</attribute>
|
||||||
</size>
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
</property>
|
<property name="leftMargin">
|
||||||
</spacer>
|
<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>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" 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>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 row="1" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_11">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_16">
|
||||||
|
<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="FramerateSlider">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<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="integratioin_time_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 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">
|
||||||
|
<string>gain</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="gain_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 row="5" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_18">
|
||||||
|
<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="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 row="6" column="0">
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>594</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="tab_2">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Tab 2</string>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
@ -887,7 +915,13 @@ QToolBar QToolButton:hover {
|
|||||||
<customwidget>
|
<customwidget>
|
||||||
<class>CustomDockWidgetBase</class>
|
<class>CustomDockWidgetBase</class>
|
||||||
<extends>QDockWidget</extends>
|
<extends>QDockWidget</extends>
|
||||||
<header location="global">customdockwidgetbase.h</header>
|
<header>customdockwidgetbase.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>CustomDockWidgetHideAbove</class>
|
||||||
|
<extends>QDockWidget</extends>
|
||||||
|
<header location="global">CustomDockWidgetBase.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
|
|||||||
@ -136,6 +136,9 @@
|
|||||||
<ClCompile Include="CustomDockWidgetBase.cpp">
|
<ClCompile Include="CustomDockWidgetBase.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="CustomDockWidgetHideAbove.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtMoc Include="fileOperation.h">
|
<QtMoc Include="fileOperation.h">
|
||||||
@ -230,6 +233,9 @@
|
|||||||
<ClInclude Include="irisximeaimager.h">
|
<ClInclude Include="irisximeaimager.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="CustomDockWidgetHideAbove.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtUic Include="FocusDialog.ui">
|
<QtUic Include="FocusDialog.ui">
|
||||||
|
|||||||
Reference in New Issue
Block a user