【问题标题】:Widget hidden by default默认隐藏的小部件
【发布时间】:2016-01-15 11:16:24
【问题描述】:

我对 Qt 框架完全陌生。我想要得到的是在我启动程序时隐藏所有小部件,因此在打开 MainWindow 时。我不是在编码它。 我只是在“设计”编辑器中编辑程序。我一直在寻找一个选项,我可以在默认情况下将小部件设置为隐藏,但没有任何成功。

感谢您的帮助。

【问题讨论】:

  • 我的意思是如果需要的话我可以做一些编码。我只是直到现在才编写程序,因为我只是在调整 GUI。我知道将其编码会更好,但我对整个 Qt 框架真的很陌生,所以现在我正在学习。我只是想知道如何做到这一点并帮助其他有此问题的人。

标签: qt qmainwindow qtwidgets


【解决方案1】:

您想让 MainWindow 不可见还是只隐藏 MainWindow 中的所有小部件?

第一:

hide();

第二:

//after setup ui
    foreach( QWidget * child, findChildren< QWidget * >() ) 
    {
        child->hide();
    }

【讨论】:

  • 我想在主窗口打开后隐藏所有名称为 widget* 的小部件。
  • 好的,所以你可以使用类似 QList children = findChildren ( QRegExp( "widget*", Qt::CaseSensitive, Wildcard ) );找到他们。 foreach 进行迭代, hide() 隐藏它们。您可以在设置 ui 后的构造函数中或在受保护的成员 showEvent 中执行此操作
  • 好的。非常感谢。一会儿我会尝试实现代码。如果出现问题,我会通知您。 Acutally.. 我看到你在 Qt 中相当不错 :) 我还有一个问题。您能解释一下特定文件的用途吗?我是说。我知道 .ui 文件的用途。但是在哪里放置其他代码? main.cpp 还是 mainwindows.cpp?因为我想我不需要过多地操纵 mainwindow.h 标头。
  • 有点跑题了,但我会试着解释一下。无论如何对不起我的英语,这不是我的母语。在 main.cpp 中,您创建 QApplication 对象和主窗体类。 mainwindow.h - 该表单的标题。有你声明类、信号、槽、方法、成员等 mainwindow.cpp - 用于实现这些方法。 ui - 文件,描述表单的外观。从中将生成 ui_mainwindow.h。
  • 你的英文很好。我也不是以英语为母语的人,所以我对你的完全满意。是的。我了解这些文件的概念以及它们之间的交互。谢谢你。对于初学者来说,Qt 的教程或电子书没有那么多,所以我有点失望,自己学不了这么多。否则,再次感谢您。