我开发了一个C应用程序,其中GTK
嵌入在arm架构中,屏幕具有水平方向。
现在我已经更改了屏幕并且它以垂直方向映射,我想使用相同的应用程序。
有一种简单的方法可以更改主GTK_WINDOW
及其所有小部件的方向吗?
退出gtk_orientable_set_orientation()
,但GTK_WINDOW
无法转换为GTK_ORIENTABLE
。
答案 0 :(得分:0)
方向适用于可能具有不同实例的不同方向的小部件。改变GTK_WINDOW的方向对我来说没什么意义。这意味着你有一些默认方向的窗口,你的应用程序有另一种方向吗?
如果您使用嵌入式设备,则可能是全屏,然后是处理屏幕旋转的显示服务器。尝试在PC上使用xrandr更改方向。所有应用程序都将自行更新以尊重新方向。
答案 1 :(得分:0)
GtkWindow
是GtkBin
,即只能有一个孩子的容器。 GtkOrientable
接口适用于具有多个子节点的容器和布局管理器,并且可以面向(例如,定向GtkGrid
将毫无意义)。如果小部件具有不同的width-for-height和height-for-width首选大小,则orientation也会更改大小请求。
您还必须意识到,只是更改布局管理器的方向不会自动使横向/纵向方向发生,除非您的显示是完全正方形的;两个方向的不同大小约束需要不同的布局,这意味着窗口小部件层次结构的不同组织。