【问题标题】:qt - widget - positioningqt - 小部件 - 定位
【发布时间】:2011-04-06 06:05:41
【问题描述】:

我想将一些小部件放置在某个随机位置的父小部件中,例如 Point (10,10) 处的一个按钮和 (15,40) 处的另一个按钮等。如何实现这一点? QGridLayout 将所有内容都推入行列样式。但是我想把小部件放在任何我想要的地方,有人可以帮我吗?

【问题讨论】:

    标签: c++ user-interface qt


    【解决方案1】:

    如果您真的想要设置绝对位置,我会完全忽略使用布局。您可以使用move()函数或setGeometry()函数手动设置元素的位置。

    QWidget *parent = new QWidget();
    parent->resize(400, 400);
    
    QPushButton *buttonA = new QPushButton(parent);
    buttonA->setText("First Button");
    buttonA->move(10, 10);
    
    QPushButton *buttonB = new QPushButton(parent);
    buttonB->setText("Second Button");
    buttonB->move(15, 40);
    

    旁注:我会避免在 Qt 中设置元素的绝对位置。为什么?好吧,Qt 试图成为一个独立于平台的 GUI 库。在不同的平台上,许多显示内容可能会发生变化(即按钮中文本的字体大小),因此实际按钮的大小可以变化以适应更大或更小的字体大小。如果您使用上例中的绝对位置,这可能会影响您精心布置的按钮。

    如果您使用布局,则可以避免重叠按钮或从窗口边缘掉落的按钮。

    【讨论】:

      【解决方案2】:

      你可以在 QT 中看到我对覆盖按钮的回答:Qt Widget Overlays。这可能会帮助您实现您想要的。

      【讨论】:

      • +1,在此处添加了一条评论,例如手动右对齐小部件。
      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 2014-03-26
      • 2011-05-25
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多