- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个 Qt 应用程序,该应用程序使用具有以下层次结构的多个小部件(如 Qt Designer 中所示):
----- 1. QMainWindow
|
|----- 2. QWidget ("central widget")
| |
| |----- 3. CustomWidget
| |
| |----- 4. QScrollBar
|
|----- 5. QStatusBar
|
|----- 6. QToolBar ("top-left toolbar")
|
|----- 7. QToolBar ("top-right toolbar")
它们是这样排列的:
(1) ------------------------------
| (6) | (7) |
|----------------------------|
| (3) | (4) |
| | |
| | |
| | |
------------------------------
| (5) |
------------------------------
(请注意,中央小部件已被有意省略,因为它没有显示为明显不同的组件。)
设置文件决定 QStatusBar 是否应该显示调试信息。如果不应该,则应该隐藏 QStatusBar。 QStatusBar 默认不隐藏;只有在读取设置文件后才会隐藏它。为此,我使用了 QWidget::hide()
方法。
果然,QStatusBar 被隐藏了。但是,其余的小部件(特别是 CustomWidget 和 QScrollBar)不会扩展以填充(现在隐藏的)QStatusBar 留下的空间。
我找到了 QWidget::update()
和 QWidget::repaint()
方法,但它们在这里似乎用处不大。 (我已经尝试在 QStatusBar 小部件以及 QMainWindow、中央小部件、QScrollBar 和 CustomWidget 上使用它们,但都无济于事。)
我已经阅读了 size policy 上的 Qt 页面这似乎很有希望。我正在使用以下大小策略设置:
这个想法是中央小部件应该填满两个 QToolBar 和 QStatusBar 没有占用的空间。然后 CustomWidget 应该填满中央小部件中未被(垂直)QScrollBar 使用的所有空间。然而,这些大小策略似乎完全被忽视了——QStatusBar 消失了,但其他小部件没有填满空间。
我怀疑答案可能在 layout management in Qt 中, 但在 Qt Designer 中玩过这个(看起来它为每个小部件应用了各种布局类)我找不到使它工作的安排。
我需要做些什么才能让 CustomWidget 和 QScrollBar 利用隐藏 QStatusBar 时留下的空间?
与此同时,我通过将 QMainWindow 的大小调整一个像素然后再调整回来,实现了一个拼凑。调整大小事件似乎以我喜欢的方式重排小部件。这是一个不优雅的解决方案,必须有一种方法可以正确地做到这一点!
最佳答案
在仔细阅读 code for QMainWindowLayout
之后,特别是 sizeHint
,这似乎是在私有(private)类中实现的正常行为。基本上,当隐藏或显示状态栏时,无需更改其他内容。
要改变它,像这样覆盖 QMainWindow::sizeHint
:
QSize MyMainWindow::sizeHint() const
{
QSize hint = QMainWindow::sizeHint();
// if the status bar is invisible, add its height to the return value
if (statusBar() && !statusBar()->isVisible())
hint.rheight() += statusBar().sizeHint().height();
return hint;
}
编辑
这是我能想到的最简单的解决方案。如果它不起作用,下一步将涉及重新实现 resizeEvent
并检查它是否是状态栏隐藏的结果。
关于c++ - 如何强制剩余的小部件占用隐藏小部件留下的额外空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38015565/
我想向一些用户公开一个 Web 部件,但不是所有用户。如何在“添加 Web 部件”弹出窗口中显示或隐藏 Web 部件?我想通过代码来做到这一点,我希望使用 SharePoint 角色来实现这一点。 最
我无法创建两个以上的 StatusBar 部分: HWND hStatusBar = CreateWindowEx(0, STATUSCLASSNAME, "", WS_CHILD | WS_VISI
使用 SharePoint 2007,如何在编辑页面模式下允许将 CEWP 添加到“添加 Web 部件”对话框的选择菜单?目前,我只能添加公告、日历、链接、共享文档、任务,但我无法添加 CEWP。我可
哪个 Web 部件以及如何配置它以查看来自不同网站集的列表? 请注意,我不想查看页面,而是查看列表。例如,在单独的网站集下查看来自不同团队网站的公告。 预先感谢您的帮助。 最佳答案 Data Form
以下是我在 FeatureDeactivation 事件处理程序中添加的代码片段。我无法获得删除 System.Web.UI.WebControls.WebParts 类型的 webpart 的解决方
我一直在尝试跟踪来自以下方面的信息: Long URL clipped to stop breaking the page 和 http://msdn.microsoft.com/en-us/libr
我想创建一个自定义 Web 部件,它具有 1 个以上的筛选器 Web 部件,并且可以在运行时/设计时连接到报表查看器 Web 部件(集成模式)。 我为此搜索了很多,但找不到一种方法来让单个 Web 部
我正在尝试创建一个 Web 部件,使用户无需离开 AllItems.aspx 页面即可编辑项目。 Web 部件应具有与 EditForm.aspx 页面类似的功能。 我已经使用 ConnectionC
这些年发布的许多应用程序都有新的 GUI 部件。iTunes 或 Twitter.app 中垂直布局的最小、最大和关闭按钮(但最新的具有默认布局),Safari 和终端中的选项卡控件,GarageBa
在具有数据库依赖性的 WSS3 或 MOSS2007 中部署 Web 部件的最佳方法是什么? .wsp 是否应该包含创建数据库的代码,我应该将 .wsp 封装在另一个处理数据库创建的安装程序中,还是应
我在我们位于 http://sharepoint:12345 的 moss 服务器上创建了一个新的共享点站点并毫无问题地向其添加了 CQWP。 我有一个指向同一台服务器的域名。所以我指向了http:/
在官方 Office 2007 站点中有许多对筛选器 Web 部件的引用。当我尝试添加其中之一时,我的 Sharepoint 中的 Web 部件列表没有显示任何筛选器 Web 部件。 如果有人遇到相同
我被要求在 Sharepoint 中创建一个 Web 部件,列出用户在网站集中访问的最后 10 个文档。 我的客户想要一种快速的方式让用户访问文档,这样他们就不必翻遍文件夹结构来查找文档,因为大多数时
我需要使用 C# 以编程方式将 SharePoint Web 部件“站点用户”添加到页面。 我知道如何添加 Web 部件,但如何从 Share Point 获取“站点用户”Web 部件?我不知道如何实
我正在使用 MEF 在我的应用程序中加载插件。一切正常,但我希望在将新部件放入我的应用程序文件夹时发现它们。这可能吗? DirectoryCatalog 有一个 Changed 事件,但我不确定它是如
我有一个 Winforms 桌面应用程序正在加载具有相同接口(interface)类型的多个 MEF 部件。 问题:当我尝试加载多个相同类型时,出现以下异常: 组成保持不变。由于以下错误,更改被拒绝:
我有一个内容查询 Web 部件,它按内容类型对网站集进行查询。我已按内容类型对其进行了分组,因此我有: -- Agenda (Content Type) ----Agenda #1 ----Agend
考虑以下 SharePoint 站点层次结构: - Site Collection - Site1 - Subsite1 - AnotherSubsite1
好吧,在我的 SharePoint (2013) 网站中,我制作了一个简单的 JavaScript Web 部件,每五分钟刷新一次页面。我去调整时间,在刷新前输入等待时间的地方退格,然后不假思索地退出
我不知道 Sharepoint 脚本,我的同事也不知道 JavaScript。他使用了他在 http://www.wonderlaura.com/Lists/Posts/Post.aspx?ID=22
我是一名优秀的程序员,十分优秀!