这就是我到目前为止所拥有的
GtkWidget* createConsoleBox()
{
GtkWidget* textArea = gtk_text_view_new();
GtkWidget* scrollbar = gtk_vscrollbar_new(gtk_text_view_get_vadjustment(GTK_TEXT_VIEW(textArea)));
GtkWidget* textEntry = gtk_entry_new();
GtkWidget* console = gtk_table_new(3, 2, FALSE);
gtk_table_attach_defaults(GTK_TABLE(console), textArea, 0, 1, 0, 1);
gtk_table_attach_defaults(GTK_TABLE(console), scrollbar, 1, 2, 0, 1);
gtk_table_attach_defaults(GTK_TABLE(console), textEntry, 0, 2, 1, 2);
return console;
}
Run Code Online (Sandbox Code Playgroud)
我希望文本视图可以滚动,因为文本开始填充框,但框继续扩展以容纳更多文本.如何限制文本视图的大小并创建可滚动的文本视图.
提前致谢 :-)
pto*_*ato 10
我担心你误解了滚动条在GTK中是如何工作的; 通常您不直接创建滚动条,但是您要放置要滚动的小部件GtkScrolledWindow.这会自动创建滚动条并将它们连接到滚动窗口内的窗口小部件; 在您的情况下,文本视图.
这是你的createConsoleBox()功能应该是什么样子:
GtkWidget* createConsoleBox()
{
GtkWidget* textArea = gtk_text_view_new();
GtkWidget* scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
GtkWidget* textEntry = gtk_entry_new();
GtkWidget* console = gtk_table_new(3, 1, FALSE);
gtk_container_add(GTK_CONTAINER(scrolledwindow), textArea);
gtk_table_attach_defaults(GTK_TABLE(console), scrolledwindow, 0, 1, 0, 1);
gtk_table_attach_defaults(GTK_TABLE(console), textEntry, 0, 1, 1, 2);
return console;
}
Run Code Online (Sandbox Code Playgroud)