Поиск…


Синтаксис

  • obj <- <widgetName> Новое - как создаются виджеты (например, Windows, кнопки, сетки)

  • set <widget> [<attributes>] - Установить атрибуты, определенные как атрибут Attr в документации виджета (например, buttonLabel)

  • on <widget> <event> <IO action> - Добавление действия IO к виджетам Signal self (например, buttonActivated)

замечания

Во многих дистрибутивах Linux библиотека Haskell Gtk3 доступна в виде пакета в диспетчере системных пакетов (например, libghc-gtk в APT Ubuntu). Тем не менее, для некоторых разработчиков , возможно , было бы предпочтительнее использовать инструмент , как stack для управления изолированных сред, и установлен GTK3 через cabal вместо через глобальную установку менеджер системы упаковки. Для этого параметра gtk2hs-buildtools . Запустите cabal install gtk2hs-buildtools перед добавлением gtk , gtk3 или любых других библиотек Haskell на основе Gtk в вашу запись, build-depends от проекта, в вашем файле cabal.

Привет, мир в Gtk

В этом примере показано, как можно создать простой «Hello World» в Gtk3, настроив виджеты окон и кнопок. Пример кода также продемонстрирует, как устанавливать различные атрибуты и действия в виджетах.

module Main (Main.main) where

import Graphics.UI.Gtk

main :: IO ()
main = do
  initGUI
  window <- windowNew
  on window objectDestroy mainQuit
  set window [ containerBorderWidth := 10, windowTitle := "Hello World" ]
  button <- buttonNew
  set button [ buttonLabel := "Hello World" ]
  on button buttonActivated $ do
    putStrLn "A \"clicked\"-handler to say \"destroy\""
    widgetDestroy window
  set window [ containerChild := button ]
  widgetShowAll window
  mainGUI -- main loop


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow