Qt中特定点的图像

时间:2014-09-25 12:23:54

标签: qt qt4

我正在尝试在特定点(坐标)放置.png图像(公司徽标)。我已经一个接一个地放了几个按钮,现在我希望图像显示在这些按钮的正下方。下面的代码可以解决问题,但坐标根本不起作用。

//QLabel myLabel; QVBoxLayout *layout; // class members, initialized with 'this'
QPixmap pixmap("v.png");
myLabel.setPixmap(pixmap);
myLabel.setMask(pixmap.mask());
myLabel.setGeometry(QRect(312, 454, 21, 20));
layout->addWidget(&myLabel);

如何修改代码以简单地包含此图像,可能在特定坐标处(就像QPushButton一样)?注意,注释掉最后一行会删除图像,但是,即使显示图像,也无法单击按钮(并且它们不是'布局'的一部分)请提供可以使用给定坐标实现图像定位的代码。

2 个答案:

答案 0 :(得分:0)

您必须显示标签或将其放置在布局中,或确保在构造函数中为其指定了父级。

myLabel.setParent(parent_window)

setParent方法可能还需要您显示。

myLabel.show()

layout.addWidget(myLabel)

答案 1 :(得分:0)

QLayout是一个控制器,用于定位添加到其中的小部件。这就是为什么设置坐标到窗口小部件然后将其放置到布局没有任何意义。一旦显示小部件,布局将更改小部件坐标。

此外,如果你问如何在坐标中设置某个位置,你根本不应该使用QLayout,因为它会改变你设置的任何位置。

QPixmap pixmap("v.png");
myLabel.setPixmap(pixmap);
myLabel.setMask(pixmap.mask());
myLabel.setFixedSize(21, 20);
myLabel.move(312, 452); //ensure that this coordinates are in you widget
myLabel.show();