有谁知道如何能够为Qt应用程序的整个窗口设置背景颜色?
到目前为止,我正在使用样式表,但只能弄清楚如何为窗口小部件分配背景颜色,如QGroupBox或QPushButton.基本上,如果我想要黑色背景,如何在没有原始背景边框的情况下使其无缝化?
我目前正在尝试在用于ARM体系结构的Ubuntu盒上编译和构建嵌入式Linux的QT.到目前为止,我在尝试制作时遇到了很多错误.最大的一个是2000行C++函数,它导致编译器错误.其他人的经历是什么以及你是如何解决的?
我试图保持一个文件/ dev/fb0(linux framebuffer)流在几个Qt成员函数中打开.目标是使用myscreen :: connect函数打开帧缓冲区
bool myscreen::connect()
{
std::fstream myscreen_Fb;
myscreen_Fb.open("/dev/fb0")
QImage* image;
image = new QImage(w, h, QImage::Format_RGB888);
QScreen::data = image->bits();
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,这将打开帧缓冲区并创建一个新的QImage,作为写入屏幕的数据的内存缓冲区.然后我的"图像"将通过bits()函数指向屏幕上的第一个可见像素(内存).我必须实现这一点,因为我的硬件不支持默认的内存映射.
然后我想把它搞砸到屏幕上:
void myscreen::blit(const QImage &img, const QPoint &topLeft, const QRegion ®ion)
{
QScreen::blit(img, topLeft, region);
write(myscreen_Fb, image.bits(), image.size());
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法将指向第一个可见像素的指针打开使用,并从GCC获得有关未在范围内声明的myscreen_Fb的投诉.有任何想法吗?
更新
我提出了建议的更改并在类中声明了该函数,但是得到了这个让我疯狂的错误.
error: expected constructor, destructor, or type conversion before '.' token
Run Code Online (Sandbox Code Playgroud)
它指的是包含以下内容的行:
vopuscreenFd.open("/dev/fb0", fstream::out);
Run Code Online (Sandbox Code Playgroud)
布莱斯
qt ×3
c++ ×2
linux ×2
compilation ×1
embedded ×1
fstream ×1
makefile ×1
qstylesheet ×1
qwindow ×1