Как делать окна для терминальных программ


Как делать окна для терминальных программ

Сообщение k0ttee »

Для тех кого мучает вопрос: где бабки? В сайтах деньги быстрые - сделал сайт и уже зарабатываешь на торговле или рекламе.
Программирование под разные железки (в смысле "не шлепание сайтов") это длинные деньги: надо научиться, надо залить в магазин, только тогда будут бабки с продаж или рекламы.

Тренд: обломавшись с сайтами, некоторые подались в игоры и приложения... Но я вам гарантирую, что повстречав свой софт в бесплатном доступе вспомните "себя из прошлого".

Чтоб сильно не сходить с ума: можно не писать сложный код, а тырить софт с линукса и пилить к нему окна (чтоб в горнице светло было).

Первый говнософт: найдя ответы на чужие тупые вопросы и ощутив попа-боль от среды разработки, удалось выполнять прогу в проге... осталось завернуть в функцию, пилить окна и рисовать иконки.

run-terminal.png
run-terminal.png (32.39 КБ) Просмотров: 356


По-хорошему: следует брать исходный код и прямо к нему делать окна... но от кода на C у меня сильнешая попа-боль, поэтому я применил велосипед слегка портящий производительность.

Мораль: переход со скриптов на компилируемый код с типизацией и выстрелом в ногу - отличный способ развлечься на выходных! Это даже лучше чем позвонить в МЧС и сказать: "У нас дома стриж!" (и ждать пока там оценят шутку). Сложный прикол в том, что новый язык Swift можно перевести на русский как стриж.


За это сообщение автора k0ttee поблагодарил:
prohojy
Аватара пользователя
k0ttee

 
Группа: Супермодераторы
Сообщения: 6354
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 1.80
Статус: вертел
Спонсор
 
Re: Как делать окна для терминальных программ

Сообщение k0ttee »

Пришло время описывать что под капотом. И наглядно показать - каким недюжим умом надо обладать для быдлокоддинга под яблоко. :-D

Дело было в Xcode 6.3 (6D570).

Создается проект, выбирается Cocoa Application, снимается галочка "создать репозиторий" (ибо иначе среда разработки выскажет недовольство), заполняется всякая лабуда, выбирается язык (Swift или Objective-C). Короче говоря, с точки зрения веб-программиста, это "куча телодвижений" вместо "открыть блокнот и коддить".

В левой колонке видим список файлов проекта, выбираем Main.storyboard (это файл интерфейса).
Main-storyboard.png
Main-storyboard.png (7.01 КБ) Просмотров: 333

Затем в правой колонке тыкаем на вкладку с кнопками и тащим пуш-кнопку на контроллер интерфейса.
add-button.png
add-button.png (40.69 КБ) Просмотров: 333


Теперь пора связать кнопку с кодом.

В левой колонке делаем двойной клик по файлу viewcontroller.swift чтобы он открылся в плавающем окошке. Затем, удерживая Ctrl (именно Ctrl а не ⌘), тянем кнопку на окно с файлом кода. Когда перетянули, появится маленькое оконце - в нем надо выбрать как показано ниже (кнопка будет делать экшен, имя - любое чтоб самим было понятно).
button-connect.png
button-connect.png (5.45 КБ) Просмотров: 333


Вот... Теперь у нас в коде появляется примерно такая конструкция (отступы это хорошо, но я добавил себе комментов чтоб точно не заблудиться).
Код: Выделить всё
// кнопка нажата (начало)
@IBAction func buttonPressed(sender: AnyObject) {
   //тут то, что выполнять по нажатию на кнопку
}
// кнопка нажата (конец)


Теперь вывод инфы в тексотовую область.

Тянем текстовую область из левой колонки (wrapping label - многострочная текстовая область).
wrapping-label.png
wrapping-label.png (17.22 КБ) Просмотров: 333


Растянув размер и написав в него чего-нибудь, тянем из центральной области в файл с кодом (удерживая Ctrl).
В маленьком диалоге пишем имя (по этому имени код будет обращаться к текстовой области), остальное без изменений.
text-field-connection.png
text-field-connection.png (6.48 КБ) Просмотров: 333


В коде появится конструкция с именем текстового поля (я назвал Mult).
Код: Выделить всё
@IBOutlet weak var Mult: NSTextField!


Выводить в него текст можно так (как видите - к имени дописывается stringValue):
Код: Выделить всё
Mult.stringValue = "k0ttee"


Вот собственно и все, что нужно для нахлобучивания интерфейса. :-D

Простым программам хватит такого, когда в нажатие кнопки помещен вывод результата... А логику лучше вынести в отдельные функции, чтоб было удобнее.
Код: Выделить всё
// кнопка нажата (начало)
@IBAction func buttonPressed(sender: AnyObject) {
   //тут то, что выполнять по нажатию на кнопку
   Mult.stringValue = "k0ttee" //в текстовую область будет написано k0ttee
}
// кнопка нажата (конец)


Мой первый софт по нажатию на единственную кнопку выводит интересную инфу о состоянии SSD-диска, чтобы не лазить каждый раз в терминал и не командовать.

Выглядит это пока так, но можно навешать свистелок с перделками.
Изображение

Ну все... жесть пошла, дичь полетела! ]:-> Просто прокрутите вот это _http://white55.ru/smart.html (это инструкция как пользоваться консольной программой smart-ctl, что она умеет и с чем она вас съест).

Пожалуй главное в ней - просмотр сколько блоков было записано на SSD (мое окно уже выводит это).
smart-ctl.png
smart-ctl.png (21.15 КБ) Просмотров: 333
Аватара пользователя
k0ttee

 
Группа: Супермодераторы
Сообщения: 6354
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 1.80
Статус: вертел
Спонсор
 

Вернуться в Железо и софт

 


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8



*** заработок на сайте, выплаты еженедельно, в долларах ***
-= покупка и продажа кликов и трафика =-