问题标签 [qdockwidget]

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 投票
2 回答
1794 浏览

c++ - 如何使 Qt 子小部件高度相等?

QDockWidget在单个QWidget. 我每个里面都有一些小部件QDockWidget- 它们的高度应该相等。这些内部小部件可以通过上下文菜单隐藏。

我的内部小部件应该具有相同的高度。我是这样做的:

一切正常,直到我向每个元素添加一些 const 元素QDockWidget:一些水平滚动条和一些标签......现在我的内部小部件有不同的大小。但我有必要将它们的高度设置为非常相等。

QLayout在小部件层次结构的一级上布置小部件尺寸。如何制作高度相等的子小部件?

3 个子小部件与 2 个子小部件

第一张照片

我设置延伸 3 和 2 的第一个策略:

在此处输入图像描述

但是,当我添加滚动条时:

在此处输入图像描述

我的 5 个小部件的高度等于 37、37、37、28、28 ......这就是问题所在

0 投票
1 回答
758 浏览

qt - 无法将背景图像添加到 QDockWidget

据我所知,将小部件的背景设置为图像的方法是将 qstylesheet 修改为:

这似乎有效,除非它是QDockWidget' 的主要小部件。

这就是我所做的:

  1. 新建一个 qt 小部件项目
  2. 制作一个QWidget对象,可能会在那里放一个或两个按钮以确保您知道它正在被使用。
  3. 将样式表更改为步骤 2 中制作的小部件以包含:background-image: url(<your image here>);
  4. 在 MainWindow ui 文件中,将QDockWidget, 提升它的主小部件到QWidget步骤 #2 中制作的内容。

当您运行程序时,您会注意到QDockWidget的背景仍然是默认设置,但是您添加到小部件的任何按钮或标签都已将其背景更改为您选择的图像。

当您将 qss 行从 更改为background-imagebackground-color选择颜色而不是图像时,小部件会更改颜色。

QDockWidget有没有人对提供背景图像(而不仅仅是背景颜色)有任何建议?

0 投票
3 回答
2521 浏览

qt - 在 QDodckWidget 中停靠的小部件顶部绘制/绘制

我在 Qt 中有一个继承 QDockWidget 的类。该类包含另一个小部件。是否有可能在我的 QDockWidget 继承类中定义一个在包含的小部件之上绘制东西的函数?就像绘画独立于包含的小部件但要链接到继承的类。

谢谢

0 投票
1 回答
3353 浏览

c++ - Can't move QDockWidget

I want to create a widget that contains several QDockWidgets on purpose of putting it into a QMainWindow. Problem is that if I add QDockWidgets to my QWidget class with layout->addWidget(dockWidget);(I don't know any other way of doing it) and then setLayout(layout) I can't do anything to the QDockWidgets but dock and undock. I can't move them, I can't position them in another place.

QMainWindow has this feature addWidgets that QWidget doesn't have. Using QMainWindow everything works perfect, but I want it to work the same if I add a QWidget object(containing some QDockWidgets) to QMainWindow.

Is there any possibility to make my QWidget fully support those QDockWidgets, and use the on full potential(move, scale, dock, change position)?

Thanks

0 投票
4 回答
9065 浏览

qt - 设置 QDockWidget::title 样式表

我最初的问题是使 QDockWidget 标题加粗。我试过了,它奏效了:

但我不明白为什么以下代码不起作用:

即使我使用更复杂的样式表,它的每个参数都有效果,除了font: bold

QDockWidget::title 字体有什么问题?

0 投票
0 回答
910 浏览

c++ - 在 QDockWidget 停靠时自动调整 QMainWindow 的大小

我有一个 QWidget 扩展以适应 QMainWindow。我可以停靠一个 QDockWidget,但前提是它适合当前的 QMainWindow 大小。

即使 QMainWindow 太小,我也希望能够删除 QDockWidget,在这种情况下调整它的大小以适应小部件。

可能吗?

从评论编辑:

当我将小部件拖到主窗口上时,窗口太小而无法容纳小部件,它不会停靠。因此,我不能使用停靠或取消停靠时发出的QDockWidget信号。信号。topLevelChanged(bool)QDickWidget

0 投票
1 回答
434 浏览

c++ - Qt - 即使 QMainWindow 太小也允许停靠

我之前的问题没有回答,所以让我改写一下:

无论小部件和窗口的大小如何,都可以QMainWindow接受对接吗?QDockWidget

目前,如果窗口太小而无法容纳 a 的最小尺寸QDockWidget,它将不会停靠。如果主窗口可以增长以适应小部件,那将是理想的。

提前致谢!

0 投票
3 回答
3411 浏览

c++ - 如何避免在 QMainWindow 中与过多的停靠小部件发生丑陋的重叠?

在我们的应用程序中,我们有可变数量的停靠小部件,因为其中一些是由在运行时加载的插件添加的。并非所有的dockwidgets都必须同时可见。这在很大程度上取决于用户正在做什么以及哪些插件处于活动状态。

但是,如果使用 以编程方式添加了太多的dockwidgets addDockWidget(...),它们就会开始相互重叠(不是在选项卡方面,而是在一个被绘制在不同区域的内容方面,这显然看起来被破坏了)。

重叠的码头小部件

用户可以将dockwidgets 移动到仍有空间的dockareas,但布局/主窗口成功地防止(未选项卡)重新添加到“拥挤”的dockarea。

我们确实允许选项卡式停靠以允许用户安排所需的停靠小部件,但我们不想启用QMainWindow::ForceTabbedDocks,因为这会过多地限制同时可见的停靠小部件的数量(每个停靠区域一个)。

我怎样才能防止这种情况或更好地控制如何添加dockwidgets?

0 投票
1 回答
224 浏览

c++ - Qt4:从 QDockedWidget 的子类访问 QtDesigner 创建的小部件

我敢打赌,我的问题从它的标题来看很明显,但也可能不是 =)
所以让我详细解释一下……我创建了一个 QDockWidget,然后使用设计器将其转换(我的意思是提升为……)它为子类.

那么如何正确访问我放置的小部件?这个想法是所有子类的对象都在子类中处理。问题(您可能知道)是

返回这个:

而且它们都不包含我想要获得的QLabels和其他tish)。然而,查看 ui_mainwindow.h 可以对此事有所了解。小部件位于 dockWidgetContents_3 上,它是一个没有父级的 QWidget。所以唯一的方法似乎是通过 MainWinsow 的 ui->... 访问它,并且考虑公开 ui 让我成为一个“非常悲伤的熊猫”......

提前致谢!

0 投票
2 回答
1049 浏览

python - PyQt4:调整dockWidget大小时,滚动条不显示在滚动区域中

我创建了一个 python 测试程序 (Test_InfoPanel.py),它有 MainWindow 和 dockWidget,在其中还有一个 tabWidget 和 scrollArea 小部件。但是,当我调整 MainWindow 的大小时,垂直滚动条不会自动出现

同样,当我取消停靠 dockWidget 并调整大小时,垂直滚动条不会自动出现。

请帮忙!

测试程序(Test_InfoPanel.py):


生成的 *.ui 脚本 (InfoPanel_UI.py):


PS:我最初将 mainWindow 创建为 Dialog,但意识到在 undock & redock 之后,dockWidget 无法正确停靠。不知何故,有一个偏移量。如果 mainWindow 是 QtGui.QMainWindow 而不是 QtGui.QDialog,这似乎不是问题。