gtk 窗口坐标转换为屏幕坐标
时间: 2023-10-21 20:16:23 浏览: 90
在 GTK 中,可以使用以下方法将窗口坐标转换为屏幕坐标:
```c
void gtk_window_get_position (GtkWindow *window,
gint *root_x,
gint *root_y);
```
其中,`root_x` 和 `root_y` 是指向整数变量的指针,用于存储窗口在屏幕上的坐标。例如:
```c
gint x, y;
gtk_window_get_position(GTK_WINDOW(window), &x, &y);
```
这将获取窗口 `window` 在屏幕上的坐标,并将其存储在 `x` 和 `y` 变量中。
另外,还可以使用以下方法将屏幕坐标转换为窗口坐标:
```c
gboolean gtk_widget_translate_coordinates (GtkWidget *widget,
GtkWidget *dest_widget,
gint src_x,
gint src_y,
gint *dest_x,
gint *dest_y);
```
其中,`widget` 是源窗口或控件,`dest_widget` 是目标窗口或控件,`src_x` 和 `src_y` 是源坐标,`dest_x` 和 `dest_y` 是指向整数变量的指针,用于存储转换后的目标坐标。例如:
```c
gint x, y;
gtk_widget_translate_coordinates(GTK_WIDGET(window), GTK_WIDGET(root_widget), 0, 0, &x, &y);
```
这将将屏幕坐标 `(0, 0)` 转换为窗口 `root_widget` 中的坐标,并将其存储在 `x` 和 `y` 变量中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)