对于我正在处理的项目,我需要打开 Xkb布局文件 *并将密钥信息存储在内存中。那是;存储每个键映射到哪个键。有人知道C ++域中的API可以完成吗?我找到了this,但那是Python。
考虑前几行布局,英语(美国)......
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.design.widget.AppBarLayout
android:id="@+id/materialup.appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
<RelativeLayout
app:layout_scrollFlags="scroll|snap"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/materialup.toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways|snap"
/>
<LinearLayout
app:layout_scrollFlags="scroll|snap"
android:id="@+id/materialup.title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
>
<monkeys.signme.utils.CircleImageView
android:id="@+id/materialup.profile_image2"
android:layout_width="64dp"
android:layout_height="200dp"
android:layout_margin="16dp"
android:layout_gravity="center_horizontal"
android:elevation="8dp"
/>
</LinearLayout>
</RelativeLayout>
<LinearLayout
app:layout_scrollFlags="scroll"
android:orientation="horizontal"
android:id="@+id/test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
</LinearLayout>
<android.support.design.widget.TabLayout
app:layout_scrollFlags="scroll"
android:id="@+id/materialup.tabs"
android:layout_width="fill_parent"
android:layout_height="?attr/actionBarSize"
app:tabSelectedTextColor="?android:attr/textColorPrimaryInverse"
app:tabIndicatorColor="?android:attr/textColorPrimaryInverse"
app:tabIndicatorHeight="4dp"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/materialup.viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
<android.support.design.widget.FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:backgroundTint="#fff"
app:fabSize="normal"
app:elevation="2dp"
app:layout_anchor="@id/materialup.title_container"
app:layout_anchorGravity="bottom|right|end"
android:id="@+id/fab"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_margin="16dp" />
</android.support.design.widget.CoordinatorLayout>
...我想将其存储为布局&#34;英语(美国)&#34;,关键TLDE正在举行&#39;严重&#39;和&#39; asciitilde&#39;,密钥AE01持有&#39; 1&#39;和&#39; exclam&#39;并且密钥AE02正在&#39; at&#39;。
*在Ubuntu中,Xkb布局文件存储在:default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "English (US)";
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
答案 0 :(得分:1)
我非常怀疑你会找到一个解析该文件的C ++库。你最好的选择是xorg代码中的某个C函数。但你确定这是你想做的吗?如果您想知道当前如何在正在运行的服务器中定义密钥,您可能最好不要询问服务器。当然X有一个枚举键盘定义的功能?