代码之家  ›  专栏  ›  技术社区  ›  Mohammad Kanan

QWidget(qlineedit)自动调整大小以适应内容

  •  0
  • Mohammad Kanan  · 技术社区  · 8 年前

    下面的代码成功地根据需要自动调整QLineEdit字段的大小(基于动态文本的新宽度/高度)。现在,为了使调整大小的QLineEdit适合容器小部件,我需要 adjustsize() 在容器小部件上。

    我的代码中的相关元素:

    void theContainer::resize_to_content(QString text) {
    {
    // ...
    lineedit.setFixedSize(calcualtedWidth, calculatedHigh);
    theContainer::adjustSize();
    }
    

    遇到的问题是,即使QLineEdit和父窗口小部件的大小调整都有效(在某种程度上),在这种情况下的限制是,在调整大小后,QLineEdit与相邻窗口小部件重叠! 看起来容器小部件——当它调整时——似乎忽略了其他未被操纵的子项。。。 有没有系统的方法来防止这种重叠??我指的不仅仅是一种变通方法。

    --调整前的小部件

    enter image description here

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   Murzinio    8 年前

    我很肯定,使用Qt专门为布局管理提供的类会有所帮助。

    看见 Qt documentation on layout

    如果不行,我认为可以调整整个窗口的大小以获得更多的空间,而不仅仅是父窗口小部件。