如何在Qlabel中禁用对齐?

问题描述:

我正在开发一个使用QT 5.8框架的C++小程序。 它有一个带有一个标签的窗口,我想在标签中绘制一个正弦波。如何在Qlabel中禁用对齐?

正弦波应该从标签左边缘的十个像素开始,但是它是根据标签的对齐参数绘制的。

有没有可能禁用标签的对齐参数? 你有没有类似的问题,你如何解决它?

非常感谢您的帮助和合作 问候

这是我的代码:

#define SPAZIO_SX 10 // ten pixel from left 
#define SPAZIO_BASSO 10 // ten pixel from bottom 
void MainWindow::setGraphic() 
{ 
    int i; 
    QPicture pi; 
    QPainter p(&pi); 
    int x0,x1,y0,y1; 
    int yCoord; 
    yCoord=this->ui->GraphicLabel->geometry().height(); 

    p.setRenderHint(QPainter::Antialiasing); 
    p.setPen(QPen(Qt::white, 4, Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin)); 
    x0=SPAZIO_SX; 
    y0=yCoord-SPAZIO_BASSO-pvalMedia->getValue(0); // return value(0-255) 
    for(i=1;i<512;i=i++) { 
     y1=yCoord-SPAZIO_BASSO-pvalMedia->getValue(i); 
     x1=x0+1; 
     p.drawLine(x0, y0, x1, y1); 
     y0=y1; 
     x0=x1; 
    } 

    p.end(); // 
    this->ui->GraphicLabel->setPicture(pi); 
} 

在你的情况保证金将做的工作。

集QLabel保证金使用CSS,为了从toprightdownleft

ui->label->setStyleSheet("margin: 0px 0px 0px 10px;"); //10px left margin 

或设置保证金所有4个方面:

ui->label->setStyleSheet("margin:10px;"); 
+0

它并不解决问题。仅举一个例子:如果函数不是正弦波,而是距离底部30像素的水平线,则垂直对齐(当然如果垂直对齐是AlignVCenter)。如何显示在第八位? – Ferrari