2017-10-06 35 views
0

我正在開發一個使用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); 
} 

回答

0

在你的情況保證金將做的工作。

集QLabel保證金使用CSS,爲了從toprightdownleft

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

或設置保證金所有4個方面:

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

它並不解決問題。僅舉一個例子:如果函數不是正弦波,而是距離底部30像素的水平線,則垂直對齊(當然如果垂直對齊是AlignVCenter)。如何顯示在第八位? – Ferrari