问题标签 [qlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
13965 浏览

c++ - 在 Qt 中的多个 ui 表单之间切换

我正在为嵌入式设备开发用户界面。我创建了大约 30 个 ui 表单。您首先有一个欢迎表单,它加载数据库并自动连接到可用的已知 wifi 和所有这些启动功能。加载完所有内容后,下一个要加载的表单是用户登录

所以这就是我的做法,如果登录是我的第二个用户界面

这是在多个 UI 之间切换的正确方法吗?该软件可以想象为任何具有多个图标按钮以打开不同应用程序的智能手机设备。每个应用程序或文件夹都有自己的功能。我有一个主页按钮可以返回主菜单主页等等。我已经使用上面给出的代码在各种 ui 表单之间切换,我不确定这是否是解决方法。我对 Qt 很陌生,我被要求在 2 周内完成这项任务,我创建了我找到的最简单的方法。有没有更好的方法来解决它?

任何帮助或指导表示赞赏。如果您能给我链接以更好地理解,那就太好了

谢谢

编辑 在此处输入图像描述

每个 ui 表单都有一个快捷面板,用于直接访问登录、主菜单、设置-电源选项、wifi 选项(在设置内)。1下显示的布局流程与2、3和设置类似。对不起,丑陋的形象。双向箭头表示我可以来回切换。单箭头显示线性运动。

0 投票
1 回答
803 浏览

qt - 动态添加的小部件的 QScrollArea 和 QVBoxLayout 问题

我遇到了一个奇怪的问题,即动态添加小部件到 QScrollArea 中包含的 QVBoxLayout。如果我添加小部件,它会按预期工作,但是在删除所有小部件后,屏幕上仍然存在一些伪影。请看下面的截图:

在此处输入图像描述

见下面的代码:

ui_mainwindow.h

主窗口.h

主窗口.cpp

主文件

0 投票
3 回答
2374 浏览

c++ - Qt在布局中排列项目

在过去的几天里,我试图解决 Qt 布局系统的一个特定问题。我会尝试概括它:我有一个有两行的小部件。在第一行有树按钮(或任何其他控件)。他们的布局如图所示: 在此处输入图像描述

中心按钮占用了所有可用的额外空间(并且随着小部件的大小增加而扩展)。问题是我想以编程方式调整中心小部件(按钮)的大小并保持布局。使用我当前的实现,当我调整中心按钮的大小时,会发生以下情况:

在此处输入图像描述

我希望右键在中心按钮的右侧对齐(没有额外的空间)。现在,当我调整小部件的大小时,它会回到位置 1(中心占用所有额外空间),但这不是我想要的效果。

这是我当前的实现:

笔记:

我尝试对齐中心和右侧小部件 Qt::AlignLeft,但没有结果。实际上,当在布局中左对齐小部件时,它会尝试采用最小尺寸,这会破坏扩展功能:(

如果需要任何参考,我已经分享了我的代码: https ://drive.google.com/file/d/0B-mc4aKkzWlxTWdNNmpuQ0ptQ3M/edit?usp=sharing

感谢您阅读我的帖子,希望您知道解决方案:)

0 投票
1 回答
812 浏览

c++ - QWebView 设置边框可见

我想让QWebView小部件在运行时在我的布局和 UI 中具有边框,类似于QTableView. 现在它看起来没有边界和隐藏。

甚至可能吗?

0 投票
1 回答
7981 浏览

c++ - 内容动态变化的 QScrollArea

我有一个 QScrollArea ,里面有一些按钮,如图所示。 在此处输入图像描述

布局的思路是: 1. 左右键在太宽时用于滚动按钮

2.滚动区域的按钮数量可以动态改变。 3.任何空闲空间都应该尽可能的扩大滚动区域。如果不存在这样的空间,则应使用导航按钮进行滚动。

当我增加按钮时,我目前的实现是这样的: 在此处输入图像描述

但是右边有空闲空间,所以应该如下所示: 在此处输入图像描述

例如,如果我再次增加到 10,则应该出现滚动条(因为布局包含在小部件中)。

我想知道除了手动调整小部件的大小之外是否还有其他方法(因为可以翻译 ui 并且按钮可以更改大小提示,而且真正的设计更复杂:(

这是我对 ScrollAreaTest 小部件的实现:

这是包含问题的整个 Qt 项目: https ://drive.google.com/file/d/0B-mc4aKkzWlxQzlPMEVuNVNKQjg/edit?usp=sharing

0 投票
1 回答
6537 浏览

qt - Qt 制作 QPushButton 填充布局单元格

我需要一个按钮来填充或不填充QGridLayout创建按钮时单元格提供的整个空间(对齐值是从文件加载的)。我用下面的代码简化了我的情况。在运行时,用户可以设置按钮的对齐方式 - 使其填充整个布局单元或很好地居中。只要按钮没有以指定的 NULL 对齐方式开始,它就可以工作。然而,我需要能够从 NULL 对齐开始(即按钮填充布局单元格的空间)。最初与 NULL 对齐时,设置了什么以使按钮锁定到 AlignVCenter 设置,我怎样才能让按钮返回到像使用空对齐以外的其他东西进行初始化一样?

我在 Ubuntu 12.04 LTS 上使用 Qt 4.8

0 投票
1 回答
1372 浏览

qt - QSizePolicy的真正含义、文档和思考

两年来我一直在深入研究 Qt 布局系统。在此之后,我遇到了 SizePolicies 和 Layouts 的大量问题。我通常会找到解决方案,但从来没有真正理解我在做什么。

现在我花了一些时间来尝试正确理解并为他们构建一个 101 指南并且永远不会失败。我在关于 QWidget 的 QSizePolicy 的文档中找到了这条信息:

此属性保存小部件的默认布局行为

如果有一个 QLayout 管理这个小部件的孩子,则使用该布局指定的大小策略。如果没有这样的 QLayout,则使用此函数的结果。

例如,我认为如果您有一个 QLabel,并且您将策略设置为水平扩展、垂直固定,那么标签本身就会改变这种方式。但它根本没有。

阅读时,我看到它在布局中谈论它的孩子。那么它是什么意思呢?标签内没有任何内容,这就是它不起作用的原因吗?

如何在 QFrame 中插入标签,并告诉框架正在扩展... QFrame 会扩展或拉伸(取决于同一布局中的其他兄弟小部件)还是标签会扩展或拉伸,而不是 QFrame?

真是一团糟...

拉伸呢?如果在添加小部件时设置拉伸 10:

它也不起作用。

添加小部件时拉伸 0 意味着:采用我告诉你的政策。默认值,取决于小部件的类型。类似按钮的小部件具有扩展固定功能。盒状扩展-扩展...

Stretch 10 表示:最大增长。

我对吗?出色地。当内部有 QFrame 和 QLabel 时,将 Expanding 和 10 设置为拉伸到标签不起作用。

0 投票
2 回答
1262 浏览

python - (Py)Qt:QHBoxLayout 中的间距显示中央小部件的背景,而不是父级的背景

考虑以下示例代码:

它有:

  • A QMainWindowQWidget作为中央小部件(红色),作为中央小部件QVBoxLayout的子级。里面:
    • A QTextEdit(仅作为填充物)
    • A QWidget黑色),其中包含一个QHBoxLayout. 里面:
      • QLabels

这看起来像这样:

Qt HBoxLayout

我希望标签之间的空格是黑色的,因为它QHBoxLayout是 的孩子BlackBar,但它似乎BlackBar只是介于两者之间的“不可见”,并且中央小部件“闪耀”。为什么是这样?

0 投票
1 回答
2497 浏览

qt - Qt:HBoxLayout - 停止 MainWindow 调整大小到内容

似乎大多数人都在问如何QMainWindow调整其内容的大小 - 我有相反的问题,我的 MainWindow确实调整了大小,我不知道为什么。

当我将我的文本设置QLabel为更长的文本时,我的主窗口突然变大了,我不知道为什么会发生这种情况。

以下示例代码基本包含:

  • 一个QMainWindow
    • AQWidget作为中心小部件
      • 作为QVBoxLayout那个的孩子
        • LabelBar里面那个。

LabelBar是一个QWidget,它又包含:

  • 一个QHBoxLayout
    • 里面有两个QLabel

一秒钟后,aQTimer将标签设置为更长的文本以说明问题。

PyQt 示例代码:

0 投票
1 回答
4658 浏览

qt - ListView 未按预期定位在布局中

我有一个带有 RowLayout 的 ColumnLayout。RowLayout 按预期定位。如果正在调整窗口大小,这也是正确的。即使窗口小于整个 ColumnLayout(参见第二张图片)

但是,如果我将 RowLayout 替换为(水平)ListView,则此 ListView 不会像我预期的那样定位。我希望这与 RowLayout 的示例类似,但 ListView 的位置更高:

如果窗口变得“变小”,则蓝色矩形“移入”ListView,这与第一个示例不同:

如何使用 ListView 实现第一个示例的行为?

资源