GTK入門學習:布局練習之計算機,gtk入門布局計算機

來源:互聯網
上載者:User

GTK入門學習:布局練習之計算機,gtk入門布局計算機

接下來,我們做一個布局練習,如:



我們用表格布局實現,表格布局參考座標如下:



這裡我們用到行編輯控制項( GtkEntry )。

行編輯的建立:

GtkWidget * gtk_entry_new(void);

返回值:行編輯指標行


編輯內容的設定:

void gtk_entry_set_text (GtkEntry *entry,

const gchar *text);

entry: 行編輯

text: 需要設定的內容


設定行編輯是否允許編輯:

void gtk_editable_set_editable(GtkEditable *editable,

gboolean is_editable);

editable:行編輯

is_editable:TRUE代表可編輯,FALSE不允許編輯


完整代碼如下:

#include <gtk/gtk.h> // 標頭檔int main( int   argc, char *argv[] ) {gtk_init (&argc, &argv); // 初始化// 視窗的操作GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  // 建立視窗 gtk_widget_set_size_request(window, 270, 320);// 表格的操作GtkWidget *table = gtk_table_new(5, 4, TRUE);   // 表格版面配置,5行4列  // 行編輯的操作GtkWidget *entry = gtk_entry_new();// 行編輯的建立gtk_entry_set_text(GTK_ENTRY(entry), "2+2=4");// 給行編輯設定內容gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);// 設定行編輯不允許編輯,只做顯示用// 按鈕的操作GtkWidget *button0 = gtk_button_new_with_label("0");// 按鈕0GtkWidget *button1 = gtk_button_new_with_label("1");// 按鈕1GtkWidget *button2 = gtk_button_new_with_label("2");// 按鈕2GtkWidget *button3 = gtk_button_new_with_label("3");// 按鈕3GtkWidget *button4 = gtk_button_new_with_label("4");// 按鈕4GtkWidget *button5 = gtk_button_new_with_label("5");// 按鈕5GtkWidget *button6 = gtk_button_new_with_label("6");// 按鈕6GtkWidget *button7 = gtk_button_new_with_label("7");// 按鈕7GtkWidget *button8 = gtk_button_new_with_label("8");// 按鈕8GtkWidget *button9 = gtk_button_new_with_label("9");// 按鈕9GtkWidget *button_add = gtk_button_new_with_label("+");// 加GtkWidget *button_minus = gtk_button_new_with_label("-"); // 減GtkWidget *button_multiply = gtk_button_new_with_label("*");// 乘GtkWidget *button_divide = gtk_button_new_with_label("/");// 除GtkWidget *button_equal = gtk_button_new_with_label("=");// 等於GtkWidget *button_detele = gtk_button_new_with_label("c");// 退格// 布局操作gtk_container_add(GTK_CONTAINER(window), table); // 表格放入視窗 gtk_table_attach_defaults(GTK_TABLE(table), entry, 0, 4, 0, 1);// 行編輯放入表格gtk_table_attach_defaults(GTK_TABLE(table), button0, 0, 1, 4, 5);// 按鈕放入表格gtk_table_attach_defaults(GTK_TABLE(table), button1, 0, 1, 3, 4);gtk_table_attach_defaults(GTK_TABLE(table), button2, 1, 2, 3, 4);gtk_table_attach_defaults(GTK_TABLE(table), button3, 2, 3, 3, 4);gtk_table_attach_defaults(GTK_TABLE(table), button4, 0, 1, 2, 3);gtk_table_attach_defaults(GTK_TABLE(table), button5, 1, 2, 2, 3);gtk_table_attach_defaults(GTK_TABLE(table), button6, 2, 3, 2, 3);gtk_table_attach_defaults(GTK_TABLE(table), button7, 0, 1, 1, 2);gtk_table_attach_defaults(GTK_TABLE(table), button8, 1, 2, 1, 2);gtk_table_attach_defaults(GTK_TABLE(table), button9, 2, 3, 1, 2);gtk_table_attach_defaults(GTK_TABLE(table), button_add, 1, 2, 4, 5);gtk_table_attach_defaults(GTK_TABLE(table), button_minus, 2, 3, 4, 5);gtk_table_attach_defaults(GTK_TABLE(table), button_multiply, 3, 4, 2, 3);gtk_table_attach_defaults(GTK_TABLE(table), button_divide, 3, 4, 3, 4);gtk_table_attach_defaults(GTK_TABLE(table), button_equal, 3, 4, 4, 5);gtk_table_attach_defaults(GTK_TABLE(table), button_detele, 3, 4, 1, 2);gtk_widget_show_all(window);  // 顯示所有控制項 gtk_main();  //進入事件迴圈  return 0; } 


原始碼下載請點此處。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.