私はここで初めてで、どうすればよいかわかりません。
私は VB.NET で多くのプログラムを作成しましたが、現時点では Windows のみで、Linux でも作業する必要があり、代わりに FreeBASIC と GUI 用の GTK を使用しています。
誰かが How Use GTKTextView in FreeBASIC の例を作ることができますか?
これは私が仕事をしたいベースです、FreeBASIC Code with XML Glade
' START CONST '
' This part make a Const when can be used inside the program
CONST PROJ_NAME = "GTK_TEXT_VIEW"
' END CONST '
' When you compile the program he need path of external library
' then you can define the path inside the program
' If the case are (__FB_WIN32__) Mean Windows
#IF DEFINED(__FB_WIN32__)
#LIBPATH "C:\msys64\mingw64\lib"
' If you use anothe OS with different Path then you can put here like
' this default path of Linux
#ELSE
#LIBPATH "/usr/lib"
#ENDIF
' END define Library PATH
' DEFINE the GTK Header where you can use the GTK Library
' This Line define the GTK Version 3.00
#DEFINE __USE_GTK3__
' Including the GTK Header
#INCLUDE "gtk/gtk.bi"
gtk_init(@__FB_ARGC__, @__FB_ARGV__)
#INCLUDE "libintl.bi"
bindtextdomain(PROJ_NAME, EXEPATH & "/locale")
bind_textdomain_codeset(PROJ_NAME, "UTF-8")
textdomain(PROJ_NAME)
'--------------------------------------------------------------------------'
' Now we ave to set the object to bind
SCOPE
VAR er = gtk_check_version_(3, 24, 0)
IF er THEN
?"Error (GTK-Version):"
?*er
END 1
END IF
END SCOPE
DIM SHARED AS GtkBuilder PTR XML
DIM SHARED AS GObject PTR MainWindow, TextView_Left, TextView_Right, _
ButtonLeftToRight, ButtonRightToLeft, ButtonWriteInsideLeft, _
ButtonWriteInsideRight, ButtonExit
XML = gtk_builder_new()
SCOPE
DIM AS GError PTR meld
IF 0 = gtk_builder_add_from_file(XML, "gtk_Text_View.glade", @meld) THEN
WITH *meld
?"Error (GTK-Builder):"
?*.message
END WITH
g_error_free(meld)
END 2
END IF
END SCOPE
MainWindow = gtk_builder_get_object(XML, "MainWindow")
TextView_Left = gtk_builder_get_object(XML, "TextView_Left")
TextView_Right = gtk_builder_get_object(XML, "TextView_Right")
ButtonLeftToRight = gtk_builder_get_object(XML, "ButtonLeftToRight")
ButtonRightToLeft = gtk_builder_get_object(XML, "ButtonRightToLeft")
ButtonWriteInsideLeft = gtk_builder_get_object(XML, "ButtonWriteInsideLeft")
ButtonWriteInsideRight = gtk_builder_get_object(XML, "ButtonWriteInsideRight")
ButtonExit = gtk_builder_get_object(XML, "ButtonExit")
'End Define Var and Objects
'Now we ave to make the Handler
SUB on_ButtonLeftToRight_clicked CDECL ALIAS "on_ButtonLeftToRight_clicked" ( _
BYVAL menuitem AS GtkMenuItem PTR, _
BYVAL user_data AS gpointer) EXPORT
END SUB
SUB on_ButtonRightToLeft_clicked CDECL ALIAS "on_ButtonRightToLeft_clicked" ( _
BYVAL menuitem AS GtkMenuItem PTR, _
BYVAL user_data AS gpointer) EXPORT
END SUB
SUB on_ButtonWriteInsideLeft_clicked CDECL ALIAS "on_ButtonWriteInsideLeft_clicked" ( _
BYVAL menuitem AS GtkMenuItem PTR, _
BYVAL user_data AS gpointer) EXPORT
END SUB
SUB on_ButtonWriteInsideRight_clicked CDECL ALIAS "on_ButtonWriteInsideRight_clicked" ( _
BYVAL menuitem AS GtkMenuItem PTR, _
BYVAL user_data AS gpointer) EXPORT
END SUB
SUB on_ButtonExit_clicked CDECL ALIAS "on_ButtonExit_clicked" ( _
BYVAL menuitem AS GtkMenuItem PTR, _
BYVAL user_data AS gpointer) EXPORT
end
END SUB
gtk_builder_connect_signals(XML, 0)
gtk_widget_show_all(GTK_WIDGET(MainWindow))
gtk_main()
g_object_unref(XML)
XML Glade ファイルはこちら
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkWindow" id="MainWindow">
<property name="can-focus">False</property>
<child>
<object class="GtkFixed">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow" id="Scroll_Left">
<property name="width-request">200</property>
<property name="height-request">200</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTextView" id="TextView_Left">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
</child>
</object>
<packing>
<property name="x">5</property>
<property name="y">25</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="Scroll_Right">
<property name="width-request">200</property>
<property name="height-request">200</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTextView" id="TextView_Right">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
</child>
</object>
<packing>
<property name="x">220</property>
<property name="y">25</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ButtonLeftToRight">
<property name="label" translatable="yes">Left To Right</property>
<property name="width-request">100</property>
<property name="height-request">30</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_ButtonLeftToRight_clicked" swapped="no"/>
</object>
<packing>
<property name="x">10</property>
<property name="y">230</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ButtonRightToLeft">
<property name="label" translatable="yes">Right To Left</property>
<property name="width-request">100</property>
<property name="height-request">30</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_ButtonRightToLeft_clicked" swapped="no"/>
</object>
<packing>
<property name="x">120</property>
<property name="y">230</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ButtonExit">
<property name="label" translatable="yes">Exit</property>
<property name="width-request">100</property>
<property name="height-request">30</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_ButtonExit_clicked" swapped="no"/>
</object>
<packing>
<property name="x">320</property>
<property name="y">270</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ButtonWriteInsideRight">
<property name="label" translatable="yes">Write Right</property>
<property name="width-request">100</property>
<property name="height-request">30</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_ButtonWriteInsideRight_clicked" swapped="no"/>
</object>
<packing>
<property name="x">120</property>
<property name="y">270</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ButtonWriteInsideLeft">
<property name="label" translatable="yes">Write Left</property>
<property name="width-request">100</property>
<property name="height-request">30</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_ButtonWriteInsideLeft_clicked" swapped="no"/>
</object>
<packing>
<property name="x">10</property>
<property name="y">270</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="width-request">35</property>
<property name="height-request">25</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Left</property>
</object>
<packing>
<property name="x">5</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="width-request">40</property>
<property name="height-request">25</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Right</property>
</object>
<packing>
<property name="x">220</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
ご協力ありがとうございました