2017-02-21 102 views
-3

我正在写一个程序,我需要创建的,而不是拖放一个QLabel的代码,但我有我想定位QLabel问题,这是我的代码:如何在Qt上定位QLabel?

if(ui->WorksList->currentItem()->text() == "Work1") 
    { 
     ui->InformationLabel->show(); 
     QLabel *label = new QLabel(this); 
     label->show(); 
     label->setText("Extraction"); 
     label->setMinimumWidth(100); 
     int x = 2000; 
     x = label->geometry().x(); 
     int y = 2000; 
     y = label->geometry().y(); 
    } 

用这段代码我的QLabel不会从左上角移动。

谢谢

+2

你甚至知道作业的方向吗? 'QWidget :: x'和'QWidget :: y'也是'const'并且通过值返回。所以使用'QWidget :: move'。 – LogicStuff

+0

随着QWidget :: move标签停止出现。 –

+0

这些坐标的分辨率是否足够高? – LogicStuff

回答

-1

您的发布代码不会移动任何东西;正如其中一条评论所说,您必须使用move方法来移动标签。如果它没有出现,那么它不是屏幕显示就是被其他东西掩盖,或者两者兼而有之。 move方法的坐标位于父窗口小部件的坐标中,而不是屏幕,而不是窗口。您已将此QLabel归档为this,所以坐标相对于this的左上角,无论如何。

您的代码不显示this是什么,也没有提及this的面积有多大,所以我们不可能知道什么坐标可能是合理的。