gpt4 book ai didi

c++ - GTK3 :How to receive input value from entry/input box?

转载 作者:可可西里 更新时间:2023-11-01 10:44:29 26 4
gpt4 key购买 nike

我是 GTK 的新手,我想知道如何调整输入框的大小以及标签和框之间的间距?此外,如何从输入框中接收输入值以供进一步使用,如 C 函数“scanf”。谢谢你,抱歉我的英语不好

#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>

static void destroy(GtkWidget *widget, gpointer data){
gtk_main_quit ();
}


static void initialize_window(GtkWidget* window) {
gtk_window_set_title(GTK_WINDOW(window),"My Window");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 100);
g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL);
}

int main (int argc, char *argv[]){
GtkWidget *window,*table,*label,*entry, *entry1, *label1, *label3, *label2, *entry2;
gtk_init(&argc, &argv);



window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
initialize_window(window);


table = gtk_table_new(4, 2, TRUE);
gtk_container_add (GTK_CONTAINER (window), table);


label = gtk_label_new ("Circle with standard formula:(x-a)^2 + (y-b)^2 =r*r");
gtk_misc_set_alignment (GTK_MISC (label), 70, 70);

gtk_table_set_homogeneous(GTK_TABLE (table), TRUE);
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 0, 1);

entry = gtk_entry_new ();
gtk_table_attach_defaults (GTK_TABLE (table), entry, 1, 2, 1, 2);

label1 = gtk_label_new ("Input value of a:");
gtk_table_set_homogeneous(GTK_TABLE (table), TRUE);
gtk_table_attach_defaults(GTK_TABLE (table), label1, 0, 1, 1, 2);

entry1 = gtk_entry_new();
gtk_table_attach_defaults(GTK_TABLE(table), entry1, 1, 2, 2, 3);

label2=gtk_label_new("Input the value of b:");
gtk_table_set_homogeneous(GTK_TABLE(table), TRUE);
gtk_table_attach_defaults(GTK_TABLE (table), label2, 0, 1, 2, 3);

label3=gtk_label_new("Input the value of r:");
gtk_table_set_homogeneous(GTK_TABLE(table), TRUE);
gtk_table_attach_defaults(GTK_TABLE (table), label3, 0, 1, 3, 4);

entry2 = gtk_entry_new();
gtk_table_attach_defaults(GTK_TABLE(table), entry2, 1, 2, 3, 4);


gtk_widget_show_all(window);

gtk_main ();
return 0;
}

最佳答案

为了在您的输入框之一中获取文本,请使用 gtk_entry_get_text 函数,此处有更多详细信息:https://developer.gnome.org/gtk3/stable/GtkEntry.html#gtk-entry-get-text

例如:

buffer = gtk_entry_get_text(&entry1);

就更改元素之间的间距而言,Gtk 文档指出,如果您不需要单独的行间距,那么 GtkGrid 是首选,因为自 Gtk 3.4 以来,许多表函数似乎已被弃用。

要设置行间距,请使用此处的 gtk_table_set_row_spacing:https://developer.gnome.org/gtk3/stable/GtkTable.html#gtk-table-set-row-spacing在其下方列出了有关 gtk_table_set_col_spacing 的信息。

在表格单元格内设置填充有点不同,可以使用子元素的 x-padding 和 y-padding 属性来控制,更多信息列在 GtkTable 页面的底部。

关于c++ - GTK3 :How to receive input value from entry/input box?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com