问题标签 [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 回答
3797 浏览

qt - QWidget::setLayout 错误:尝试设置 QLayout [...],它已经有一个布局

执行时(没有编译错误)我进入控制台

QWidget::setLayout: 试图在 CGSearchResult "" 上设置 QLayout "",它已经有一个布局

我正在使用以下代码:

0 投票
1 回答
758 浏览

drag-and-drop - PyQt:基于拖放的拼字游戏 UI

我编写了一个简单的拼字游戏,其中包含一个简单的 Bot 和 Human 部分,可以使用基于控制台的 I/O 进行交互。尽管已经有一个基于 Qt 的游戏当前情况概述:一个简单的自定义QWidget,它简单地绘制所有内容。还没有互动或任何花哨的东西。

我目前的,很好的工作解决方案
(来源:reaktor42.de 上的 b52

我的问题是我想删除基于控制台的交互并切换到新的基于 Drag'n'Drop 的方法,但我对 PyQt 和 GUI 开发一般不太熟悉。

因此我的问题是,什么是好方法?为板和机架创建自定义布局以及可拖动的自定义字母小部件?

提前感谢奥利

0 投票
3 回答
12679 浏览

qt - QGridLayout,3个窗格,未正确展开

我正在尝试使用QGridLayout. 我可以将小部件添加到布局中,它们会显示在我的窗口中,但我不知道如何正确调整它们的大小。这就是我想要的

这些是我窗口的 3 个“窗格”(它们都列出了三个)。左边和右边的宽度应该是静态的,并拥抱它们各自的边,并且随着窗口的增长(或缩小),中心应该扩大以填充宽度。

一些代码:

(正如您可能会说的,这最终将是一个 9x9 网格,但重点仍然存在,我试图让我的中间行 ( GridRowSecond) 具有弹性列)。

行本身扩展得很好。问题似乎是让每个单元格上的小部件展开以占用它们的包含空间。我该怎么做呢?(另外,我的列表在垂直方向上正确扩展,但不是水平方向)。

0 投票
1 回答
1491 浏览

qt4 - 有效的 Qt 布局管理

看起来 Qt 中的布局非常强大和灵活,但有时不是很直观。我有时必须摆弄以获得所需的小部件布局。也许我有错误的方法?

看这个表格:

在此处输入图像描述

  1. a 制作的布局是表单的布局 - a 看不到它的边缘,我在 Qt Designer 中找不到任何设置。
  2. 标签和它们的小部件之间的空间(我更喜欢放在小部件上方,而不是在它们的左侧)太大。我可以为它们设置maximum大小,或者我可以为每个标签及其小部件制作子布局 - 但这是要走的路吗?
  3. 看起来这个布局有几列。我可以从布局中添加/删除列/行而不破坏它并重新创建它吗?我该怎么做最好的方法?最左边的列比第二列更窄 - 从最左边的列设置其中一个小部件的最小宽度没有帮助。

我一直在 Internet 上寻找有关如何在 Qt Designer 中制作良好布局的文章。你有任何链接吗?你能分享你使用 Qt 布局的技巧吗?

0 投票
3 回答
9812 浏览

c++ - 如何以编程方式将 QMainWindow 调整为最小大小

当我有一个带有网格布局的 QMainWindow 时,当用鼠标调整它的大小时,它不会低于其中所有控件正确显示所必需的最小尺寸。在我的应用程序中,我有时会以编程方式隐藏控件,但随后窗口保持相同大小,其余控件看起来散开,它们之间的空间太大。我最终手动调整了对话框的大小,所以它看起来并不难看。

在隐藏控件后手动调整大小时,我可以通过编程将对话框的垂直大小设置为最小吗?

0 投票
2 回答
2160 浏览

qt - 如何在 Qt Designer 中覆盖 QComboBox 的最小尺寸?

我有一个包含三列 QGridLayout 的对话框。其中一行分别在每一列中包含一个 QComboBox、一个 QPushbutton 和另一个 QPushButton。我希望每列的大小和比例相同。

不幸的是,QComboBox 将其尺寸提示设置得太大,以至于无法容纳其最宽的项目。似乎没有名为“DoNotAdjustAndStopBeingAnnoying”或类似名称的SizeAdjustPolicy,所以我不确定是否可以设置任何东西来强制它停止执行此调整。

我知道我可以很容易地在代码中做到这一点,但我更愿意将这种细节保留在 .ui 文件中。有什么方法可以在 Qt 4.8 中做到这一点而无需编写任何代码?

0 投票
2 回答
17033 浏览

python - PySide:从布局中删除小部件

我正在尝试从 PySide 应用程序的布局中删除 Qt 小部件。

这是一个最小的例子。它是一个包含 5 个按钮的小部件,中间的按钮应该在单击时自行移除:

实际发生的是这样的:

实际发生了什么

该按钮是不可点击的,并且显然没有考虑布局计算,但它的图像保持不变。

根据Qt 文档,从布局中删除所有对象的正确方法是:

这里我只想删除第三个按钮,所以我只调用takeAt(2),然后del b调用那个项目的析构函数。按钮对象也.popbuttons列表中 'd 以确保没有对该对象的剩余引用。我的代码与 Qt 文档中会导致这种行为的代码有何不同?

0 投票
5 回答
100761 浏览

qt - QVBoxLayout:如何将小部件垂直对齐到顶部而不是中心

在 Qt 中,当我将小部件添加到布局时,它们默认垂直居中。有没有办法从上到下“列出”小部件而不是垂直居中?

0 投票
2 回答
5100 浏览

qt - 从样式表设置内容边距

我正在努力QLayout使用样式表将 Qt 中的对象的内容边距设置为零。我可以删除它们,QLayout::setContentsMargins(0, 0, 0, 0)但我更愿意从样式表中删除它们。

0 投票
1 回答
6088 浏览

c++ - QLabel 在调整大小时切断文本

我有一个自定义小部件,它具有 QVBoxLayout 的整体布局。它包含几个标签、一个 QFormLayout、一个按钮和一个用来吃掉所有多余空间的拉伸。其中一个标签可能非常大,因此我试图确保不会出现文本不可读的奇怪情况。小部件包含在 QScrollArea 中,以确保如果用户缩小整个窗口,仍然可以看到小部件的所有方面。

QLabel 似乎可以很好地调整大小,但是一旦达到某个狭窄点,它就会切断标签的底部几行并将空间分配给小部件底部的拉伸。

我在没有设计器的情况下在代码中完成这一切,所以我完全有可能只是遗漏了一些东西。子组件按以下顺序添加到整体 QVBoxLayout:

测试结果:检查 QLabel 的 sizeHint() 函数返回的结果,返回的值似乎没有随着小部件水平收缩而改变。但是,QLabel 确实会扩展以占用更多的垂直空间(153 与 103 的提示),只是不足以容纳所有文本。当 QLabel 首次显示时,它的像素比它的 sizeHint 少,但对于它的 heightForWidth 量仍然足够。当它被调整大小时,它比它的 heightForWidth 量少 30,但比它的 sizeHint 多。

我已经检查过,大型 QLabel 的 hasHeightForWidth() 和 wordWrap() 值设置为 true。我究竟做错了什么?