日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)

發(fā)布時間:2023/12/31 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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提供了以下幾種常用按鈕:

  • Fl_Button
    這種是最普通也是最常用的按鈕。
  • Fl_Check_Button
    復(fù)選框控件,一組中可以有多個被選中。
  • Fl_Return_Button
    這種按鈕可以用回車鍵激活(即使焦點不在這個按鈕上)。
  • Fl_Radio_Round_Button
    (單)選框,與復(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中繪制基本控件并顯示需要以下幾個步驟:

  • 創(chuàng)建一個窗口
  • (可選)創(chuàng)建分組
  • 創(chuàng)建控件
  • 窗口調(diào)用end()方法
  • 顯示窗口
  • 運行FLTK主循環(huán)
  • 示例程序:

    #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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。