我正在尝试学习如何使用GTK。我熟悉Java的JSwing,但是很难控制GTK小部件。
下面我创建一个窗口并添加一个表容器(我假设它就像一个LayoutManager)。我还在第一个单元格中添加了一个文本视图(类似于JTextArea)。
当我开始在文本视图中输入并且当我的文本通过边缘时,我的窗口会增长。如何使窗口保持相同的大小并在文本视图中具有滚动功能?
#include "window.h"
void window_create(ChatWindow* window)
{
//Allocate the actual window. Our ChatWindow object has a pointer to a GTKWidget called window
window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//Set the size of the window
gtk_window_set_default_size(GTK_WINDOW(window->window), 250, 180);
//Close the program when they click the x button
g_signal_connect(window->window,"delete-event", G_CALLBACK(gtk_main_quit), NULL);
//Show the window
gtk_widget_show(window->window);
gtk_window_set_title(GTK_WINDOW(window->window),"Chat Program");
//Setup the Window
window->chatHistory = gtk_text_view_new(); //Allocate the new TextView
window->layout = gtk_table_new(4,4,TRUE);
gtk_table_attach_defaults(GTK_TABLE(window->layout), window->chatHistory, 0, 1, 0, 1 );
gtk_container_add(GTK_CONTAINER(window->window), window->layout);
gtk_widget_show_all(window->window);
}
答案 0 :(得分:1)
将GtkTextView
放在GtkScrolledWindow
内,它将获得滚动功能。滚动窗口也会使其不会增大。