• 1359阅读
  • 0回复

关于QHBoxLayou布局的疑惑 [复制链接]

上一主题 下一主题
离线lwei24
 

只看楼主 倒序阅读 楼主  发表于: 2021-02-09


各位大佬,请问在用QHBoxLayout进行布局的时候,控件,比如QToolButton的move会失效吗?由于开始没有进行布局,后面再布局后,控件move就失效了,也就是不在预想的位置上了?有什么办法再QHBoxLayout布局时,将控件位置放在右上角,即自己想要的位置上呢?代码如下:



   QHBoxLayout   m_hBoxLayout1 = new QHBoxLayout(this);
    m_hBoxLayout1->setSpacing(0);
    m_hBoxLayout1->setContentsMargins(10, 10,10,10);

    QToolButton     m_toolBtnClose = new QToolButton(m_windowTitle);
    m_toolBtnClose->setIcon(QIcon(":/res/main/close02.png"));//border-image:url(:/res/main/close2.png);
    m_toolBtnClose->setStyleSheet("QToolButton{background-color:none;border:none;width:16px;height:16px;padding:4px;min-height: 16px;border-radius:0px;color: #FFFFFF;}"
                                  "QToolButton:hover{background-color: #DC0000;border: none;color: #FFFFFF;}"
                                  "QToolButton:pressed{background-color:#F1707A;}");
    QImage closeImg(":/res/main/close02.png");
    m_toolBtnClose->setFocusPolicy(Qt::NoFocus);
    m_toolBtnClose->setToolTip(TBTN_CLOSE_INFO);
    m_toolBtnClose->installEventFilter(this);
    m_toolBtnClose->resize(closeImg.size());
    m_toolBtnClose->move(this->width()*97.5/100, this->height()*0/100);
    connect(m_toolBtnClose, &QToolButton::clicked, this, &mainDlg::close);

    QToolButton  m_toolBtnMax = new QToolButton(m_windowTitle);
    m_toolBtnMax->setIcon(QIcon(":/res/main/maximize01.png"));
    m_toolBtnMax->setStyleSheet("QToolButton{background-color:none;border:none;width:16px;height:16px;padding:4px;min-height: 16px;border-radius:0px;color: #FFFFFF;}"
                                "QToolButton:hover{background-color: #2e9eea;border: none;color: #FFFFFF;}"
                                "QToolButton:pressed{background-color:palette(highlight);}");
    QImage maxImg(":/res/main/maximize01.png");
    m_toolBtnMax->setFocusPolicy(Qt::NoFocus);
    m_toolBtnMax->installEventFilter(this);
    m_toolBtnMax->resize(maxImg.size());
    m_toolBtnMax->move(this->width()*97.5/100 - this->m_toolBtnClose->width(), this->height()*0/100);
    connect(m_toolBtnMax, &QToolButton::clicked, this, &mainDlg::slotShowMaximized);

   QToolButton  m_toolBtnRestore = new QToolButton(m_windowTitle);
    m_toolBtnRestore->setIcon(QIcon(":/res/main/restore01.png"));
    m_toolBtnRestore->setStyleSheet("QToolButton{background-color:none;border:none;width:16px;height:16px;padding:4px;min-height: 16px;border-radius:0px;color: #FFFFFF;}"
                                    "QToolButton:hover{background-color: #2e9eea;border: none;color: #FFFFFF;}"
                                    "QToolButton:pressed{background-color:palette(highlight);}");
    QImage restoreImg(":/res/main/restore01.png");
    m_toolBtnRestore->setFocusPolicy(Qt::NoFocus);
    m_toolBtnRestore->installEventFilter(this);
    m_toolBtnRestore->resize(restoreImg.size());
    m_toolBtnRestore->move(this->width()*97.5/100 - this->m_toolBtnClose->width(), this->height()*0/100);
    connect(m_toolBtnRestore, &QToolButton::clicked, this, &mainDlg::slotShowRestore);
    m_toolBtnRestore->setVisible(false);

    QToolButton  m_toolBtnMin = new QToolButton(m_windowTitle);
    m_toolBtnMin->setIcon(QIcon(":/res/main/minimize01.png"));
    m_toolBtnMin->setStyleSheet("QToolButton{background-color:none;border:none;width:16px;height:16px;padding:4px;min-height: 16px;border-radius:0px;color: #FFFFFF;}"
                                    "QToolButton:hover{background-color: #2e9eea;border: none;color: #FFFFFF;}"
                                    "QToolButton:pressed{background-color:palette(highlight);}");
    QImage minImg(":/res/main/minimize01.png");
    m_toolBtnMin->setFocusPolicy(Qt::NoFocus);
    m_toolBtnMin->installEventFilter(this);
    m_toolBtnMin->resize(minImg.size());
    m_toolBtnMin->move(this->width()*97.5/100 - this->m_toolBtnClose->width() - this->m_toolBtnMax->width(), this->height()*0/100);
    connect(m_toolBtnMin, &QToolButton::clicked, this, &mainDlg::slotShowMinimized);



快速回复
限100 字节
 
上一个 下一个