您可以隐藏QGroupBox框架,但保留其可见的内容吗?

jpo*_*o38 5 qt groupbox

我有一个QGroupBox。根据上下文的不同,其标题可能是多余的(显示在GUI的其他位置),因此我需要使好像QGroupBox不在这里。...但是我必须保留其内容可见(所以我不想打电话QGroupBox::hide())!

我需要在运行时动态地执行此操作,并希望避免创建/销毁QGroupBox+使其内容重新父代化。

到目前为止我尝试过的是:

QGroupBox 可见:

在此处输入图片说明

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

我最终得出以下结论:

在此处输入图片说明

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

pab*_*ker 7

我的选择:

QGroupBox theBox;
theBox.setFlat(true);
theBox.setStyleSheet("border:0;");
Run Code Online (Sandbox Code Playgroud)


Mas*_*ler 2

您可以使用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());
}
Run Code Online (Sandbox Code Playgroud)