2

窗口如何在嵌入式 qt 中工作,其中 Qt 直接绘制到帧缓冲区而不是通过单独的窗口系统?我可以同时运行多个程序吗?我是否得到合成和小 [x] 按钮、最大化等等?

4

3 回答 3

5

您需要运行一个应用程序作为服务器来提供窗口管理功能;例如,通过在运行时在命令行中传递 -qws 选项。

任何其他应用程序都作为客户端运行。有关详细信息,请参阅此页面:

http://doc.qt.digia.com/4.5/qt-embedded-running.html

于 2009-03-05T23:42:12.620 回答
1

你问的是它是如何工作的?如果你想要一个基本的概述,可以把它想象成 Linux 上的 X-windows 服务器,其中帧缓冲区绘制边框、装饰等,只有 Qt 库被编译为更直接地使用帧缓冲区而不是它们X-windows 服务器。程序也可以覆盖帧缓冲区的各个方面,而不需要由窗口服务器进行更改。但是,对于您使用 Qt 进行的大部分 UI 工作,您将使用与常规桌面版本完全相同的某些类(QDialog 等)。它们只是由不同的底层绘制。

于 2009-02-12T16:01:22.380 回答
1

从 Qt 文档:

Qt for Embedded Linux 应用程序需要一个正在运行的服务器应用程序,或者是服务器应用程序本身。通过使用 QApplication::GuiServer 类型构造 QApplication 对象,或使用 -qws 命令行选项运行应用程序,任何 Qt for Embedded Linux 应用程序都可以成为服务器应用程序。

所以你可以QApplication::GuiServer 作为第三个参数传递给QApplication构造函数来拥有一个服务器:

QApplication app( argc, argv, QApplication::GuiServer );

或将-qws参数传递给应用程序以将其作为服务器运行:

./MyApp -qws

其他应用程序应作为客户端运行。

于 2014-06-03T09:21:58.650 回答