我有一个 QGroupBox 。根据上下文,它的标题可能是多余的(显示在 GUI 的另一个地方),所以我需要让 QGroupBox 不在这里......但我必须保持它的内容可见(所以我不想调用 QGroupBox::hide() )!

我需要在运行时动态执行此操作,并希望避免创建/销毁 QGroupBox + 重新设置其内容......必须有一种更简单的方法来做到这一点。

到目前为止我尝试过的:
QGroupBox 可见:

qt - 您可以隐藏 QGroupBox 框架但保留其内容可见吗?-LMLPHP

  • QGroupBox::setTitle("") 删除文本。
  • QGroupBox::setFlat(true) 使框架成为单行。

  • 我最终得到了这个:

    qt - 您可以隐藏 QGroupBox 框架但保留其内容可见吗?-LMLPHP

    还不错……但仍然有一行……有没有办法完全隐藏 QGroupBox 框架但保留其内容可见?

    最佳答案

    您可以使用 QFrame + QGridLayout(或一些更复杂的布局组合)+ QSS 而不是 QGroupBox

    仅考虑 QGroupBox,通过 QSS 的简单解决方案可能是:

    static const char kSavedTitle[] = "_savedTitle";
    void hideBoxFrame(QGroupBox * box) {
      box->setProperty(kSavedTitle, box->title());
      box->setTitle(QString());
      box->setStyleSheet("border:none");
    }
    void showBoxFrame(QGroupBox * box) {
      box->setTitle(box->property(kSavedTitle).toString());
      box->setStyleSheet(QString());
    }
    

    关于qt - 您可以隐藏 QGroupBox 框架但保留其内容可见吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36603051/

    10-10 14:47