为啥我在设计QT的时候对不齐
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我在设计QT的时候对不齐相关的知识,希望对你有一定的参考价值。
选择你要对齐的控件,然后右键,选择对齐的方式就可以了,最后整个窗口也要选择对齐 参考技术A 用HBoxLayout和VBoxLayouotQt:为啥我的图片在 LinuxFb 上的背景是绿色的?
【中文标题】Qt:为啥我的图片在 LinuxFb 上的背景是绿色的?【英文标题】:Qt: Why is the background of my image green on LinuxFb?Qt:为什么我的图片在 LinuxFb 上的背景是绿色的? 【发布时间】:2017-05-16 21:37:23 【问题描述】:我的 Qt 应用程序应该将 JPEG 图像显示到 HDMI 监视器。当我在我的 Linux 桌面环境中运行应用程序时,图像会正确显示。
但是,当我在 LinuxFB 下的嵌入式 Linux 环境中运行此应用程序时,图像周围有大量绿色。
我的 1080p 显示器上的 NTSC (720x480) 彩条。
我的应用程序是用 QLabel 而不是 QWidget 编写的,并且没有任何活动窗口。我尝试了许多解决方案,主要是使用 QPainter,但到目前为止,背景外观没有任何改变。
int main (int argc, char *argv[])
QApplication app(argc, argv);
// Set the app palette to be transparent
app.setPalette(QPalette(Qt::transparent));
QPixmap input ("test.jpg");
QImage image(input.size(), QImage::Format_ARGB32_Premultiplied);
// Try to fill the QImage to be transparent
image.fill(Qt::transparent);
QPainter p(&image);
// Try a few things to get the painter background to be transparent
p.setOpacity(0.5); // 0 is invisible, 1 is opaque
p.setBackgroundMode(Qt::TransparentMode);
p.setBackground(Qt::transparent);
p.setBrush(Qt::transparent);
p.drawPixmap(0,0,input);
p.end();
QPixmap output = QPixmap::fromImage(image);
QLabel label (0, Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
// Set the style sheet background color as transparent as well
label.setStyleSheet("background-color: transparent;");
//label.setStyleSheet("background-color: rgba(255,255,255,0);");
label.setPixmap(output);
label.setScaledContents(true);
label.show();
return app.exec();
应用程序执行如下
./my-Qt-application -qws -nomouse -display LinuxFb:/dev/fb1
我认为这与 Linux 帧缓冲区本身没有任何关系,因为绿色背景仅在我运行 Qt 应用程序时出现。
假设绿色背景来自 Qt,我该怎么做才能将其关闭(或使其透明)?
【问题讨论】:
谢谢,这是一个错字。我在编辑中更正了它。 【参考方案1】:Qt 4.8(可能是 4.x)
绿色背景来自QWSServer。您可以使用QWSServer::setBackground() 更改它。
Qt 5.x
绿色背景的起源还是Qt,但是QWSServer
已经不存在了。我建议使用全屏QWidget
作为背景。您可以使用包含background-color: black;
的简单样式表更改为QWidget
的背景颜色。
【讨论】:
【参考方案2】:您没有做任何事情来正确缩放标签。绿色背景是您的标签所在的位置 - 它可能是帧缓冲区的默认内容。填满整个屏幕,你就不会有这个问题了。
【讨论】:
以上是关于为啥我在设计QT的时候对不齐的主要内容,如果未能解决你的问题,请参考以下文章
为啥qt designer设计界面和用python运行得到的不一样?
为啥我在VS里面设计的时候设置了margin-top的DIV显示正常,但是预览的时候margin-top就无效了