问题标签 [qgridlayout]
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.
c++ - 从 QGridLayout 中移除 QWidget
我有一个QGridLayout
添加自定义的地方QWidgets
。
当我尝试删除所有它们时,它们应该从布局中删除(因为函数layout.count()
返回 0),但它们仍然显示在界面中,我可以与它们交互。
在这里,您可以使用我添加小部件的方式:
这里是我删除它们的方式:
从 QGridLayout 中正确删除项目/小部件的任何帮助或提示?
PD:我在互联网上看到很多人在将小部件从布局中删除后直接删除(删除_widget)。就我而言,这是不可能的,因为我需要在内存中保留这些小部件。
qt - QGridLayout 中的 Qt 对齐消除了调整其元素的大小
好的,所以基本上我有一个带有 QWidget 和两个按钮的简单表格,如下所示:
这基本上就是我想要的,其中“重置”和“完成”是按钮。本质上它是一个 QWidget,viewcontainer,它会随着用户改变窗口大小而调整大小,而按钮的高度保持不变。但是,gridlayout 的默认设置是将内容向左对齐。如果我改变这个:
它确实是我想要的,但图形场景不再调整大小(仍然是一个小的恒定大小)。我想在将小部件与中心对齐的同时保留调整大小。谢谢。
c++ - 使用中心单元设置 3x3 QGridLayout
我正在用 C++ Qt 4.6.3 开发一个小游戏,我偶然发现了一个布局问题。我正在寻找的布局是一个 3x3 QGridLayout,其中中央单元 (1,1) 包含主要小部件(它是一个棋盘游戏)。(0,1) 单元格应该包含一个 QLabel,显示轮到谁了,(1,0) 和 (1,2) 单元格被细分为 QVBoxLayouts 以容纳最多 3 个记分牌,而 (2,1) -cell 还拥有某种 QLabel。
这是我到目前为止所得到的:
现在,在 MS Windows(我 GF 的笔记本电脑)上,我通过重新实现resizeEvent()
函数解决了这个问题:
这很好用!但是,在 Unix 上似乎存在问题(或者可能是由于版本差异?4.6 vs 4.8)。在调用该setRowMininmumHeight()
方法时,似乎发出了另一个 resize-event,导致递归调用!我希望我的应用程序可以在两个平台上运行,所以很明显我必须找到另一个解决方案。我摆弄了一下setRowStretch()
,setColStretch()
但这些都没有达到预期的结果。我尝试了各种组合,但现在我很困惑......
有没有人能解决这个看似简单的问题?
qt - 放置到 QGridLayout 中的小部件
我使用 QGridLayout 并将布局定义为 ui 文件。
我需要实现这样的布局:
|第 0 列 |第 1 列 |第 2 列 |第 3 列 |
|宽度足以容纳文本|空白空间|宽度为 66-70 的行编辑|宽度足以容纳文本|
我的问题是第 1 列和第 2 列。
我应该使用哪种尺寸策略来为第 1 列提供所有可用空间?
我正在尝试将最小宽度 = 66 和最大宽度 = 70 设置为第 2 列。并将“扩展”宽度策略设置为第 1 列。
但由于某种原因,在这种情况下,第 1 列扩展得更多,第 2 列少于 66。
如果我将第 1 列的大小策略设置为“最大”,则所有空间都将分配给第 2 列。并且该列的宽度大于行编辑小部件,因此它不再右对齐。
c++ - 如何在布局中调整 QWidget 的大小,同时将其与中心对齐并保持纵横比
好的,所以我想用 qt 显示图像,其中图像随浏览器调整大小并保持纵横比,同时保持在窗口的中心。我可以使用纵横比调整大小以正常工作,但是当我将其与 Qt::AlignCenter 对齐时,qwidget 不再调整大小(保持固定大小)。所以基本上,我可以选择工作但不能一起工作。
我正在尝试做的一个很好的例子是 matlab 中的 imshow() 函数。这会在保持纵横比的同时调整图像大小,并将图像在窗口中居中。我的代码是这样的:
在构造函数中:
我搜索了谷歌,找不到任何东西。不久前还问了一个类似的问题,但从答案看来,我没有足够清楚地问这个问题。谢谢。
qt - 布局 sizeHint qwidget
我正在创建一个小部件,其中包含一个国际象棋桌和六个按钮,这些按钮显示在国际象棋桌下方的 2 行中。按钮行比棋盘宽。国际象棋表和按钮位于 QGridLayout 中。Chess table 有自己的 sizeHint,它是根据方格的大小计算出来的。
经过一些操作后,我删除了按钮并将包含所有内容的小部件调整为其 sizeHint ( resize(sizeHint())
)。小部件在垂直方向上正确调整大小,但在水平方向上它保持与按钮行一样宽。问题是什么 ?
如果我仅使用国际象棋表构建小部件,则布局会正确调整小部件的大小。
我正在添加代码:
在窗口的构造函数中:
在添加按钮的函数中:
在删除国际象棋表之外的所有内容的函数中:
国际象棋表的 sizeHint 计算如下:
pyqt - 大小更改后的 GridLayout+ScrollArea 小部件位置
我有一个滚动区域,里面有一个网格布局,我用图像向它添加了 QLabels。当应用程序启动时,它工作正常并正确显示标签:
注意:我计算有多少标签适合当前布局空间。
如果我最大化它也可以正常工作:
但是当我点击恢复时,发生了一些奇怪的事情:
您可以看到只添加了 6 个标签(与第一个屏幕截图中相同),但在这里它们都相互重叠。
这是 ScrollArea 和 Layout 的初始化代码:
c++ - QGridLayout 的 addWidget 阻止了我的项目
这个问题看起来很简单,但我没有在 2 小时内解决它。我有这个布局:
我需要那个“绘图”(项目的图形部分),占据项目的顶端(第 0 行,第 0 列到第 1 列)。
问题是我在构造函数中输入的任何值:
所有其他小部件都被阻止了,当我的程序运行时我无法交互。
使用经典构造函数
没问题,但小部件“绘制”不是我想要的(只有 1 列而不是 2 列)。
有人知道我在哪里做错了吗?
PS:小部件没有布局设置(除了一个数字键盘来固定键的最小高度)。
c++ - QGridLayout 的行跨度未按预期工作
下面是如何绘制一个跨越 2 列的按钮:
运行代码给了我:
如果我更改布局以获取一个baz
跨越 2 行的按钮,我将失败:
这是我得到的:
qt - 使用 QAlignment 后 QGridLayout Widget 消失
我有以下内容:
哪个显示很好。但是,当我将对齐添加到第二行时,即:
小部件从屏幕上消失。我想我已经尝试了所有方法来让它与顶部对齐,包括将其放入 QVBoxLayout,然后将其添加到 QGridLayout。这里有什么遗漏吗?