如何在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,为了从top
,right
,down
,left
:
ui->label->setStyleSheet("margin: 0px 0px 0px 10px;"); //10px left margin
或设置保证金所有4个方面:
ui->label->setStyleSheet("margin:10px;");
它并不解决问题。仅举一个例子:如果函数不是正弦波,而是距离底部30像素的水平线,则垂直对齐(当然如果垂直对齐是AlignVCenter)。如何显示在第八位? – Ferrari