linux - ADA & GTK => 函数 Get_Text

标签 linux function gtk ada graphical-programming

我想创建一个顶级窗口并在其中使用此函数。

没有任何例子......

完整说明位于 /usr/share/ada/adainclude/gtkada/gtk-gentry.ads

function Get_Text (The_Entry : access Gtk_Entry_Record) return UTF8_String;
   --  Modify the text in the entry.
   --  The text is cut at the maximum length that was set when the entry was
   --  created.
   --  The text replaces the current contents.

对于Debian及相关操作系统,您可以通过以下方式访问该目录:sudo apt-get install libgtkada2.24.1-dev

最佳答案

我弄清楚了如何将 Get_text 函数与 Entry 一起使用。

manuBriot 和 andlabs =

我还在 Entry 的包中找到了当用户按下 _Enter 时的 react 信号。

最后,现在一切正常。

我的程序做什么? =它是一个窗口,看起来就像这样:http://pix.toile-libre.org/?img=1450777307.png

并且,在您输入内容并在图形输入中按 _Enter 后,结果将在命令行中打印。

简单且有用,适合开始使用 GTK 语言。

WITH Gtk.Main ;          USE Gtk.Main ;
WITH Gtk.Window ;        USE Gtk.Window ;
WITH Gtk.Enums ;         USE Gtk.Enums ;
WITH Gtk.Button ;        USE Gtk.Button ;
WITH Gtk.Alignment ;     USE Gtk.Alignment ;
WITH Gtk.Box ;           USE Gtk.Box ;
WITH Gtk.Gentry;         USE Gtk.Gentry;
WITH Ada.text_io;        USE Ada.text_io;
WITH Gtk.Widget ;        USE Gtk.Widget ; 
with Gtk.Handlers;

PROCEDURE prototype IS

-----------------------
   -- VARIABLES --    | 
----------------------------------------------------------
   win : Gtk_window ;

   Btn1, Btn2 ,Btn3  : Gtk_Button ;

   alignG, alignM ,alignD  : Gtk_Alignment ;

   Boite  : Gtk_VBox ;

   Boutons :  Gtk_HBox ;

   saisie : Gtk_Entry ;



----------------------------------------------------------
--Instanciation package(s) for connexion
----------------------------------------------------------

   PACKAGE P_Callback IS NEW Gtk.Handlers.Callback(Gtk_Widget_Record);

   USE P_Callback ; 

----------------------------------------------------------
--  Handlers (or callbacks)   |
----------------------------------------------------------

   procedure Stop_Program(Emetteur : access Gtk_Widget_Record'class)
   is

      PRAGMA Unreferenced (Emetteur);

   begin

      Main_Quit;

   end Stop_Program ;


   procedure Handler_text(Ent : access Gtk_Widget_Record'class)
   is begin

   put_line(get_text(saisie));

   end Handler_text ;

-------------------------------------------------
BEGIN

   Init ; 

----------------
   -- NEW --   |
-------------------------------------------------

   Gtk_New(win);   

   Gtk_New(saisie);

   Gtk_New(Btn1, "Bouton 1") ; 
   Gtk_New(Btn2, "Bouton 2") ; 
   Gtk_New(Btn3, "Bouton 3") ; 

   Gtk_New(alignG,0.0,1.0,1.0,1.0);
   Gtk_New(alignM,0.5,1.0,1.0,1.0);
   Gtk_New(alignD,1.0,1.0,1.0,1.0);

  Gtk_New_VBox
  (Boite, homogeneous => false, Spacing => 0) ;

  Gtk_New_HBox
  (Boutons, homogeneous => false, Spacing => 0) ;

---------------------------------
--  Add                    |
---------------------------------

   alignG.add(Btn1) ;
   alignM.add(Btn2) ;
   alignD.add(Btn3) ;

   win.Add(Boite);

------------------------------------------
--  Connect                   |
------------------------------------------

Connect(Widget => win ,
          Name => "destroy" ,
            Cb => Stop_Program'access);         

Connect(Widget => saisie ,
          Name => "activate" ,
            Cb =>  Handler_text'access);

------------------------------------------
--  Design Window          |
------------------------------------------

   Boite.Pack_Start(saisie);
   Boite.Pack_Start(Boutons);
   Boutons.Pack_Start(alignG);
   Boutons.Pack_Start(alignM);
   Boutons.Pack_Start(alignD);


   win.Set_Default_Size(500,500) ;   

   win.set_position(Win_Pos_Mouse) ; 

   -- win.set_opacity(0.7) ;

   win.Show_all ; 
   Main ; 

END prototype ;

关于linux - ADA & GTK => 函数 Get_Text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212871/

相关文章:

php - Linux - PHP mkdir 创建目录,但没有写权限?

c++ - Windows 和 Linux 最大线程数

c - GTK 无法识别按键释放事件

c++ - WebKitGTK 中的 Ext JS webkit_web_view

java - 如何使用命令行生成带有盐的 sha512 哈希?

function - OCaml:迭代列表并跳过错误构造函数的元素

excel - 在VBA Excel中调用sub中的函数时出现"Object Required"

python - 以更好的模式重写我的简单 Python 代码

python - 在 Clutter 中使用 BindConstraint 来约束 actor 的大小

android - Dropbox 同步 API 不返回没有扩展名的文件