Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402

Кнопки в wxHaskell

24.04.2012, 19:10. Показов 1899. Ответов 10

Студворк — интернет-сервис помощи студентам
делаю графический интерфейс, и возникла проблема не могу найти хотя бы примеры кодов с радио-кнопками, кнопками выбора (в c# это CheckBox) и выпадающие списки,

если кто знает можете написать или же сказать в какой литературе по Haskell это можно прочитать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2012, 19:10
Ответы с готовыми решениями:

Установка haskell и wxhaskell
Здравствуйте, дайте пожалуйста инфу, как и в каком порядке устанавливать wxhaskell, юзал поиск по форуму, перекачал кучу всего, не которые...

Как установить wxHaskell?
вопрос в том как установить это приложение, читала по этому инфу с официального сайта, поняла только что там много чего надо соединять,...

Незапуск некоторых wxhaskell программ
Все образцы программ из папки wxhaskell-0.11.1.2/samples/ я спокойно компилирую и запускаю в любых разновидностях Ubuntu (правда, пришлось...

10
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
24.04.2012, 20:26
Там по аналогии с button, все имеющиеся контролы описаны в документации.
Картинки примеров можно поглядеть здесь, исходный код сэмплов - здесь, для примера с контролами актуальна эта ссылка.
Ещё полезно пробежаться по ссылкам отсюда.
1
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
24.04.2012, 21:23  [ТС]
спасибки

Добавлено через 48 минут
я посмотрела, но не могу найти выпадающий список там
0
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
24.04.2012, 22:02
Цитата Сообщение от White Luna Посмотреть сообщение
я посмотрела, но не могу найти выпадающий список там
Choice же.
1
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
25.04.2012, 00:13  [ТС]
ой...

Добавлено через 1 час 13 минут
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
module Main where
import Graphics.UI.WX
import Graphics.UI.WXCore 
 
main :: IO ()
main
  = start gui
 
gui :: IO ()
gui
  = do -- main gui elements: frame, panel, text control, and the notebook
       f       <- frame [text := "Controls"]
       p       <- panel f []
       nb      <- notebook p []
       textlog <- textCtrl p [enabled := False, wrap := WrapNone] 
 
       -- use text control as logger
       textCtrlMakeLogActiveTarget textlog
       logMessage "logging enabled"              
       -- set f [on closing :~ \prev -> do logSetActiveTarget oldlog; logDelete log; prev]
       
       --меню
       frm <- panel nb []
       lab <- staticText frm [text := "Краткое описание вкладок"] 
       lab1 <- staticText frm [text := "1 - Реализация нажатия на кнопку"]    
       lab2 <- staticText frm [text := "2 - Текстовое поле ввода"]
       lab3 <- staticText frm [text := "3 - Реализация радио-кнопки"]
       lab4 <- staticText frm [text := "4 - Реализация элементов выборки"]
       lab5 <- staticText frm [text := "5 - Реализация выпадающего списка"]
       lab6 <- staticText frm [text := "6 - Релизация таблицы"]
       Close1 <- button p1 [text := "Закрыть", on command := close f]
 
       -- button page
       p1   <- panel  nb []
       ok   <- button p1 [text := "Ok", on command := logMessage "ok button pressed"]
       quit <- button p1 [text := "Quit", on command := close f]
 
       -- radio box page
       p2   <- panel  nb []
       let rlabels = ["first", "second", "third"]
       r1   <- radioBox p2 Vertical rlabels   [text := "radio box", on select ::= logSelect]
       r2   <- radioBox p2 Horizontal rlabels [tooltip := "radio group two", on select ::= logSelect]
       rb1  <- button   p2 [text := "disable", on command ::= onEnable r1]
 
       -- choice
       p3   <- panel nb []
       let clabels = ["mies","noot","aap"]
       c1   <- choice p3 [tooltip := "unsorted choices", on select ::= logSelect, sorted  := False, items := clabels]
       c2   <- choice p3 [tooltip := "sorted choices", on select ::= logSelect, sorted  := True, items := clabels] 
       cb1  <- button p3 [text := "disable", on command ::= onEnable c1]
 
       -- list box page
       p4   <- panel nb []
       sl1  <- singleListBox p4 
                  [items      := clabels
                  ,tooltip    := "unsorted single-selection listbox"
                  ,on select ::= logSelect]
       sl2  <- singleListBox p4 
                  [items      := clabels
                  ,tooltip    := "sorted listbox"
                  ,on select ::= logSelect, sorted     := True]
       sc1  <- checkBox p4 [text := "enable the listbox", checked := True, on command := set sl1 [enabled :~ not]]
 
       -- slider/gauge page
       p5   <- panel nb []
       s    <- hslider p5 True {- show labels -} 1 100 [selection := 50]
       g    <- hgauge  p5 100 [selection := 50]
       set s [on command := do{ i <- get s selection; set g [selection := i]} ]
 
       -- specify layout
       set f [layout :=
                container p $
                column 0
                 [ tabs nb
                    [tab "меню" $ 
                     container frm $ margin 10 $ column 6 [hstretch $ widget close1
                                                          , row 0 [widget lab, 
                                   widget lab1, 
                                   widget lab2,
                                   widget lab3,
                                   widget lab4,
                                   widget lab5,
                                   widget lab6,]]
 
            ,tab "buttons" $ 
                     container p1 $ margin 10 $ floatCentre $ row 5 [widget ok, widget quit]
                    ,tab "radio box" $ 
                     container p2 $ margin 10 $ column 5 [ hstretch $ widget rb1
                                                         , row 0 [floatLeft $ widget r1
                                                                 ,floatRight $ widget r2]]
                    ,tab "choice" $ 
                     container p3 $ margin 10 $ column 5 [ hstretch $ widget cb1
                                                         , row 0 [floatLeft $ widget c1
                                                                 ,floatRight $ row 5 [label "sorted: ", widget c2]]]
                    ,tab "listbox" $ 
                     container p4 $ margin 10 $ column 5 [ hstretch  $ dynamic $ widget sc1
                                                         , floatLeft $
                                                           row 0 [widget sl1, widget sl2]]
                    ,tab "slider" $ 
                     container p5 $ margin 10 $ column 5 [ hfill $ widget s
                                                         , hfill $ widget g
                                                         , glue
                                                         ]
                    ]
                 , hfill $ minsize (sz 20 80) $ widget textlog
                 ]
             , clientSize := sz 400 300 ]
       return ()
 
  where
    -- logSelect :: (Selection w, Items w String) => w -> IO ()
    logSelect w
      = do i <- get w selection
           s <- get w (item i)
           logMessage ("selected index: " ++ show i ++ ": " ++ s)
           
 
    onEnable w b
      = do set w [enabled :~ not]
           enable <- get w enabled
           set b [text := (if enable then "disable" else "enable")]
 
-- kindof :: Object a -> String -> IO ()
kindof obj className
  = do classInfo <- classInfoFindClass className
       if (objectIsNull classInfo)
        then logMessage ("kindof " ++ className ++ ": no such class")
        else if (objectIsNull obj)
              then logMessage ("kindof " ++ className ++ ": null object")
              else do haskind <- objectIsKindOf obj classInfo
                      logMessage ("kindof " ++ className ++ ": " ++ show haskind)
0
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
25.04.2012, 00:53
Что за код? Чем знаменит?

Не по теме:

Недавно добавили подсветку синтаксиса для Haskell, пользуйся кнопкой в редакторе сообщений либо заключай весь код в [HASKELL][/HASKELL] самостоятельно.

0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
25.04.2012, 18:04  [ТС]
а, это, с переходами код, там в одном окне кнопки в др, списки, и табл, вот щас переделываю его, чтоб на его основе что то свое написать для курасача
, а сюда вставила, т к ошибку выдавал в 70-какой то строке, а компилятор без нумерации строк и чтоб посмотреть
0
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
25.04.2012, 18:21
Цитата Сообщение от White Luna Посмотреть сообщение
а компилятор без нумерации строк и чтоб посмотреть
Ты в Блокноте (Notepad-e) что ли пишешь?
Сейчас же почти любой текстовый редактор показывает колонку с номерами строк и подсветку синтаксиса для чуть менее 100 языков.
0
25.04.2012, 18:33

Не по теме:

если редактор не умеет показывать номера строк:

Bash
1
2
$ LINE=5
$ cat source.hs -n | grep -e "^[[:space:]]*$LINE\\b"
скорее всего, можно сделать получше :D

Bash
1
2
3
$ sed -n "${LINE}p" source.hs
$ # или
$ awk "NR==$LINE" source.hs

2
25.04.2012, 19:28

Не по теме:

Nameless One, поставил Cygwin, теперь благодаря твоей подсказке, смотрю любую строку, когда захочу. Спасибо!
У меня теперь даже в интерпретаторе эти команды работают.

Haskell
1
2
3
4
5
6
7
8
Prelude> :cd C:\Users\bokunopico\Desktop
Prelude> :load "sample.hs"
[1 of 1] Compiling Main             ( sample.hs, interpreted )
Ok, modules loaded: Main.
*Main> :! sed -n 7p sample.hs
swapNeighbours (x:y:xs) = y:x:swapNeighbours xs
*Main> :! gawk NR==7 sample.hs
swapNeighbours (x:y:xs) = y:x:swapNeighbours xs

1
26.04.2012, 03:03

Не по теме:

bokunopico, можно создать макрокоманду в файле .ghci в $HOME:

Code
1
2
3
4
5
:set prompt "> "
:set editor emacs
:def hoogle \x -> return $ ":!hoogle --count=15 \"" ++ x ++ "\""
 
:def line \str -> return $ ":!awk NR==" ++ str
При загрузке ghci читает этот файл и выполняет все описанные в нем команды. Теперь можно вызывать новую команду из ghci:
Code
1
:line 5 sample.hs

2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2012, 03:03
Помогаю со студенческими работами здесь

Нужно изменить доступность кнопки в одной форме нажатием кнопки в другой
Есть две формы. В первой есть кнопка &quot;which&quot; с enabled = false, во второй есть кнопка, нажатие которой должно делать which активной. Как...

Нажатие каждой кнопки приводит к ее сокрытию и показу ранее скрытой кнопки
Нажатие каждой кнопки приводит к ее сокрытию и показу ранее скрытой кнопки. При этом номер (название) ранее скрытой кнопки отображается в...

Пропал стандартный стиль объёмной кнопки WPF (кнопки теперь плоские)
Пропал стиль стандартных WPF кнопок. Кнопки теперь только плоские. Что сделать, чтобы вернуть как было? В инете нашёл только один...

При нажатии на кнопку,другие кнопки приближаются к данной кнопки
Привет всем!При нажатии на кнопку,другие кнопки приближаются к кнопке на которую я нажимаю.Так как у :active значения width и height меньше...

Как вызвать событие кнопки, если я знаю номер кнопки?
У меня на форме несколько кнопок. Как вызвать событие кнопки, если я знаю номер кнопки. Например 20 кнопок, номер 10, значит кнопка button10


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru