【问题标题】:Qt QLayout inside QDesktopWidgetQDesktopWidget 内的 Qt QLayout
【发布时间】:2010-10-21 06:39:48
【问题描述】:

我想做一个通用的方法来设置我的小部件的位置。 我想要得到的只是为我的小部件设置正确的坐标,它必须始终位于桌面的右下角。我的小部件可以改变他的高度(或者可能是宽度),但它必须通过两个坐标调整大小......(字太多)

我的想法是使用 QDesktopWidget 作为基本小部件,将带有分层项的 QLayout 放入我的 QLayout(将内部(我的)小部件与右侧和底部对齐)

我的代码原型在这里:

QDesktopWidget * desktopWidget = QApplication::desktop();
MyWidget * myWidget = new MyWidget(desktopWidget);
QVBoxLayout * vlayout = new QVBoxLayout;
vlayout->addStretch();
vlayout->addWidget(myWidget);
QHBoxLayout * hlayout = new QHBoxLayout(desktopWidget);
hlayout->addStretch();
hlayout->addLayout(vlayout);

但它不起作用......

如果你知道如何,请帮助我实现我的想法。 目前我只知道一种工作方式——它是手动设置小部件的位置并处理许多事件(调整大小等)——但这并不好......(因为我这样做是不好的;-) )

PS:在其他小部件中使用 qlayout 的想法正在使用,例如使用 QTextBrowser 在视图中使用沙钟等。

【问题讨论】:

  • 您应该尝试用您收到的错误消息替换“不起作用”之类的词,或者描述您确实收到的行为及其问题所在。跨度>
  • 因为它不能与这个“小部件”一起使用

标签: qt layout


【解决方案1】:

QDesktopWidget 不打算像典型的小部件一样使用(至少据我所知,我很惊讶文档没有更明确地说明这一点)。因此,您不应尝试将小部件作为其父级或尝试为其分配布局。您调用它的方法来获取有关桌面环境的信息或连接到它的信号以了解更改。

然后,您可以使用此信息设置您自己的应用程序小部件的几何形状,以便它们显示在您想要的正确屏幕和位置上。

This page 展示了一些基本功能。

【讨论】:

  • 我明白了。这就是为什么我问如何以最好的方式做到这一点。你有想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2012-10-04
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
相关资源
最近更新 更多