FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)
FLTK學習筆記1-繪制基本控件(按鈕、文本輸入、容器)
- FLTK中的坐標
- FLTK常用控件
- 按鈕控件
- 文本控件
- 容器控件
- 繪制基本控件
FLTK中的坐標
在FLTK中坐標均為正整數(shù),其單位是像素(pixel),原點(x=0, y=0)在屏幕的左上角,如下圖所示:
FLTK常用控件
在FLTK中,常用控件有按鈕控件、文本控件以及容器控件等。同時,所有控件的創(chuàng)建方法都一樣:
Fl_SomeWidget* pW = new SomeWidget(x, y, w, h, label);這里Fl_SomeWidget是控件的名稱,x, y, w, h分別對應(yīng)控件的x坐標,y坐標,寬度和高度,label對應(yīng)控件的顯示名稱。
按鈕控件
按鈕(Button)是最常用的控件之一,通過按鈕用戶可以調(diào)用對應(yīng)的回調(diào)函數(shù),從而控制程序的行為。
FLTK提供了以下幾種常用按鈕:
這種是最普通也是最常用的按鈕。
復(fù)選框控件,一組中可以有多個被選中。
這種按鈕可以用回車鍵激活(即使焦點不在這個按鈕上)。
(單)選框,與復(fù)選框不同的地方在于可以讓一組中僅有一個單選框被激活。
文本控件
文本控件也是常用控件之一,它可以用來進行文字編輯以及輸入輸出。對于Fl_Text_Display和Fl_Text_Editor對象而言,需要綁定一個Fl_Text_Buffer對象作為要顯示(編輯)的文字內(nèi)容。
FLTK提供了以下幾種用于處理文本的控件:
- Fl_Input
單行文本輸入控件。 - Fl_Output
單行文本輸出控件(只能復(fù)制,不能修改)。 - Fl_Multiline_Input
多行文本輸入控件。 - Fl_Multiline_Output
多行文本輸出控件。 - Fl_Text_Display
多行文本顯示控件。 - Fl_Text_Editor
多行文本編輯控件。
容器控件
FLTK提供了以下幾種容器控件:
- Fl_Double_Window
一個普通的雙緩沖窗口。 - Fl_Group
一個基本的容器類,可以將其它控件進行編組。 - Fl_Window
一個普通的窗口。
因為在FLTK中,每一個被新加入的控件都默認被分到最近的一個分組(Group)中,因此在擺放完一個分組的所有控件后要調(diào)用end()方法使后面添加的控件隸屬于其父分組。
繪制基本控件
在FLTK中繪制基本控件并顯示需要以下幾個步驟:
示例程序:
#include <FL/Fl.H> #include <FL/Fl_Double_Window.H> #include <FL/Fl_Button.H> #include <FL/Fl_Check_Button.H> #include <FL/Fl_Return_Button.H> #include <FL/Fl_Group.H> #include <FL/Fl_Text_Editor.H> #include <FL/Fl_Radio_Round_Button.H>int main(){Fl_Double_Window window(450, 350, "Simple Table"); /* 1. 創(chuàng)建一個窗口 */Fl_Group* pGroup = new Fl_Group(50, 50, 400, 150); /* 2. 創(chuàng)建一個分組 */Fl_Button* pButton = new Fl_Button(70, 50, 150, 30, "Fl_Button"); /* 3. 創(chuàng)建控件 */Fl_Check_Button* pChkButton = new Fl_Check_Button(230, 50, 150, 30, "Fl_Check_Button");Fl_Return_Button* pRetButton = new Fl_Return_Button(70, 100, 150, 30, "Fl_Return_Button");Fl_Radio_Round_Button* pRndButton = new Fl_Radio_Round_Button(230, 100, 150, 30, "Fl_Round_Button");pGroup->end(); /* 4. 結(jié)束上個容器的創(chuàng)建 */Fl_Text_Editor* pText = new Fl_Text_Editor(50, 150, 350, 150);Fl_Text_Buffer* pBuff = new Fl_Text_Buffer();pText->buffer(pBuff); /* pBuff->text()中的內(nèi)容就是Fl_Text_Buffer中顯示的內(nèi)容 */pBuff->text("示例文字");pText->end();window.end(); /* 4. 結(jié)束上個容器的創(chuàng)建 */window.show(); /* 5. 顯示窗口 */return Fl::run(); /* 6. 運行FLTK主循環(huán) */ }這里注意在編譯的時候記得加上-lfltk命令(在MSYS2上還要加上-mwindows -DWIN32 -lole32 -luuid -lcomctl32)。
運行結(jié)果:
相關(guān)鏈接:
完整程序
專欄:FLTK
FLTK學習筆記2-回調(diào)函數(shù)
總結(jié)
以上是生活随笔為你收集整理的FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何判断机器学习数据集是否是线性的?
- 下一篇: Oracle11g软硬件基本要求,Ora