diff --git a/frame/window/components/devcollaborationwidget.cpp b/frame/window/components/devcollaborationwidget.cpp index 0da6ab4ae..68ceffd7d 100644 --- a/frame/window/components/devcollaborationwidget.cpp +++ b/frame/window/components/devcollaborationwidget.cpp @@ -31,10 +31,9 @@ #include #define TITLE_HEIGHT 16 -#define ITME_WIDTH 310 +#define ITEM_WIDTH 310 #define ITEM_HEIGHT 36 -#define LISTVIEW_ITEM_SPACE 2 -#define ITME_SPACE 10 +#define LISTVIEW_ITEM_SPACE 5 #define PER_DEGREE 14 DevCollaborationWidget::DevCollaborationWidget(QWidget *parent) @@ -59,6 +58,13 @@ void DevCollaborationWidget::showEvent(QShowEvent *event) QWidget::showEvent(event); } +void DevCollaborationWidget::resizeEvent(QResizeEvent *event) +{ + Q_EMIT sizeChanged(); + + QWidget::resizeEvent(event); +} + void DevCollaborationWidget::initUI() { m_deviceListView->setModel(m_viewItemModel); @@ -73,7 +79,7 @@ void DevCollaborationWidget::initUI() QVBoxLayout *mainLayout = new QVBoxLayout(); mainLayout->setMargin(0); mainLayout->setContentsMargins(0, 0, 0, 0); - mainLayout->setSpacing(ITME_SPACE); + mainLayout->setSpacing(0); mainLayout->addLayout(hLayout); mainLayout->addWidget(m_deviceListView); @@ -107,7 +113,7 @@ void DevCollaborationWidget::loadDevice() if (!m_deviceListView->isVisible()) m_deviceListView->setVisible(true); - m_deviceListView->setFixedSize(ITME_WIDTH, m_deviceListView->count() * ITEM_HEIGHT + LISTVIEW_ITEM_SPACE * (m_deviceListView->count() * 2)); + m_deviceListView->setFixedSize(ITEM_WIDTH, m_deviceListView->count() * ITEM_HEIGHT + LISTVIEW_ITEM_SPACE * (m_deviceListView->count() * 2)); } resetWidgetSize(); @@ -175,9 +181,9 @@ void DevCollaborationWidget::updateDeviceListView() void DevCollaborationWidget::resetWidgetSize() { - int height = TITLE_HEIGHT + ITME_SPACE + (m_deviceListView->count() ? m_deviceListView->height() : 0); + int height = TITLE_HEIGHT + (m_deviceListView->count() ? m_deviceListView->height() : 0); - setFixedSize(ITME_WIDTH, height); + setFixedSize(ITEM_WIDTH, height); } void DevCollaborationWidget::itemClicked(const QModelIndex &index) diff --git a/frame/window/components/devcollaborationwidget.h b/frame/window/components/devcollaborationwidget.h index c7dd90aeb..421208e00 100644 --- a/frame/window/components/devcollaborationwidget.h +++ b/frame/window/components/devcollaborationwidget.h @@ -39,8 +39,12 @@ class DevCollaborationWidget : public QWidget public: explicit DevCollaborationWidget(QWidget *parent = nullptr); +signals: + void sizeChanged(); + protected: void showEvent(QShowEvent *event) override; + void resizeEvent(QResizeEvent *event) override; private slots: void loadDevice(); diff --git a/frame/window/components/displaysettingwidget.cpp b/frame/window/components/displaysettingwidget.cpp index 6ac92c601..f27d1e21f 100644 --- a/frame/window/components/displaysettingwidget.cpp +++ b/frame/window/components/displaysettingwidget.cpp @@ -60,7 +60,14 @@ void DisplaySettingWidget::initUI() setLayout(mainLayout); + resizeWidgetHeight(); + connect(m_collaborationWidget, &DevCollaborationWidget::sizeChanged, + this, &DisplaySettingWidget::resizeWidgetHeight); +} + +void DisplaySettingWidget::resizeWidgetHeight() +{ QMargins margins = this->contentsMargins(); setFixedHeight(margins.top() + margins.bottom() + m_brightnessAdjWidget->height() + - m_collaborationWidget->height() + m_settingBtn->height() + ItemSpacing * 2); + m_collaborationWidget->height() + m_settingBtn->height() + ItemSpacing * 2); } diff --git a/frame/window/components/displaysettingwidget.h b/frame/window/components/displaysettingwidget.h index ae8005808..9ea0b8fc4 100644 --- a/frame/window/components/displaysettingwidget.h +++ b/frame/window/components/displaysettingwidget.h @@ -39,6 +39,7 @@ public: private: void initUI(); + void resizeWidgetHeight(); private: BrightnessAdjWidget *m_brightnessAdjWidget; // 亮度调整