From 3daad474a6872ef52e0a197d26718ba59348c059 Mon Sep 17 00:00:00 2001 From: zcy <290198252@qq.com> Date: Sun, 10 Apr 2022 02:54:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=80=82=E9=85=8D=E6=95=88?= =?UTF-8?q?=E6=9E=9Cok1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Qss.cpp | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 8 deletions(-) diff --git a/Qss.cpp b/Qss.cpp index 62c1915..ef2acf2 100644 --- a/Qss.cpp +++ b/Qss.cpp @@ -25,6 +25,12 @@ #include #include #include +#include +#include +#include +#include +#include +#include #define QSSDIALOG_SHADOW_WIDTH 12 #define QSSDIALOG_BODER_WIDTH 0 @@ -346,12 +352,20 @@ QssMainWindow::~QssMainWindow() void QssMainWindow::AdapteDpi() { - QObjectList child = this->children(); + QObjectList child = this->m_frame->children(); int i = 0; for(int i = 0;i < child.size();i++){ qDebug()<objectName() + " " + child.at(i)->metaObject()->className(); + // QssTtitleBar + if(child.at(i)->objectName() =="qssTitleBar"){ + QssTtitleBar *p = dynamic_cast(child.at(i)); + if(nullptr != p){ + qDebug()<< p->sizePolicy(); + p->setFixedHeight(p->height()*m_dpi_ratio); + } + } if(child.at(i)->children().size() > 0){ this->rangeObjectList(child.at(i),i + 1); } @@ -609,7 +623,9 @@ void QssMainWindow::dpiScaleChildren() void QssMainWindow::detectDpi() { - m_dpi_ratio = this->logicalDpiX() / 96; + int logicdpi = logicalDpiX(); + m_dpi_ratio = this->logicalDpiX() / 96.0; + } void QssMainWindow::rangeObjectList(QObject *obj, int indent) @@ -622,23 +638,84 @@ void QssMainWindow::rangeObjectList(QObject *obj, int indent) for(int i = 0;i < child.size();i++){ qDebug()<objectName() + " " + child.at(i)->metaObject()->className(); - if(child.at(i)->metaObject()->className() =="QAction"){ - QAction *p = dynamic_cast(child.at(i)); - if(nullptr != p){ + + if(child.at(i)->metaObject()->className() =="QssTtitleBar"){ + QssTtitleBar *p = dynamic_cast(child.at(i)); + if(nullptr != p){ + p->setMinimumSize(p->width()*m_dpi_ratio, + p->height()*m_dpi_ratio); } } + + if(child.at(i)->metaObject()->className() =="QMenuBar"){ + QMenuBar *p = dynamic_cast(child.at(i)); + if(nullptr != p){ + p->setMinimumSize(p->width()*m_dpi_ratio, + p->height()*m_dpi_ratio); + } + continue; + + } + if(child.at(i)->metaObject()->className() =="QDateTimeEdit"){ + QDateTimeEdit *p = dynamic_cast(child.at(i)); + if(nullptr != p){ + p->setMinimumSize(p->minimumHeight()*m_dpi_ratio, + p->minimumHeight()*m_dpi_ratio); + } + continue; + } if(strcmp(child.at(i)->metaObject()->className(),"QLabel") == 0){ QLabel *p = dynamic_cast(child.at(i)); if(nullptr != p){ - p->setFixedHeight(p->height()*this->m_dpi_ratio); + qDebug()<< "parent is " + << p->parent()->metaObject()->className(); + + if(p->parent() != nullptr){ + QWidget *wparent = dynamic_cast (p->parent()); + if(nullptr != wparent){ + if(nullptr != wparent->layout()){ + qDebug()<< "index of label in layout is " + <layout()->indexOf(p); + } + } + } + QFont pf = p->font(); + pf.setPointSize(pf.pointSize()*this->m_dpi_ratio); + p->setFont(pf); + p->setMinimumSize(p->minimumHeight()*m_dpi_ratio, + p->minimumHeight()*m_dpi_ratio); } + + continue; } - if(child.at(i)->metaObject()->className() =="QLabel"){ - QLabel *p = dynamic_cast(child.at(i)); + if(strcmp(child.at(i)->metaObject()->className(),"QComboBox") == 0){ + QComboBox *p = dynamic_cast(child.at(i)); + p->setMinimumSize(p->width()*m_dpi_ratio, + p->height()*m_dpi_ratio); + continue; + } + + if(strcmp(child.at(i)->metaObject()->className(),"QPushButton") == 0){ + + QPushButton *p = dynamic_cast(child.at(i)); + qDebug()<objectName() + " " + + child.at(i)->metaObject()->className() << p->size(); + if(nullptr != p){ + p->setFixedHeight(p->height()*m_dpi_ratio); + p->setMinimumWidth(p->width()*m_dpi_ratio); + + } + continue; + } + + if(strcmp(child.at(i)->metaObject()->className(),"QLineEdit") == 0){ + QLineEdit *p = dynamic_cast(child.at(i)); if(nullptr != p){ p->setFixedHeight(p->height()*this->m_dpi_ratio); + QFont pf = p->font(); } + continue; } if(child.at(i)->children().size() > 0){