2010-02-19 36 views
16

Làm thế nào để tạo một chương trình Linux trong Giao diện dòng lệnh hiển thị giao diện người dùng đẹp mắt?Tạo một "GUI" Linux trong dòng lệnh

Ví dụ khi tôi sử dụng "wget" để tải xuống tệp từ internet, tôi có thể thấy tiến trình tải xuống trong Giao diện dòng lệnh. Làm thế nào tôi có thể làm điều đó?

+0

Ngôn ngữ mà bạn muốn viết lối vào này là gì? – Lucas

+1

Điều này [1] có vẻ là những gì bạn đang tìm kiếm. [1] http://en.wikipedia.org/wiki/Text_user_interface –

Trả lời

12

Hãy xem curses. Nó là một thư viện cho giao diện người dùng dựa trên văn bản.

12

ncurses là một tùy chọn phổ biến, có API cho nhiều ngôn ngữ lập trình.

1

Tôi sẽ không gọi báo cáo tiến trình của wget là 'gui đẹp', nhưng dù sao, thư viện cổ điển để xây dựng giao diện đồ họa không có X Windows là hệ thống Linux và UNIX là ncurses.

Gần đây, một # phiên bản C của kernel đã được bắt đầu, hãy kiểm tra các chi tiết here

0

Nếu bạn đang sử dụng Mono, bạn có thể sử dụng MonoCurses

0

Hãy thử lời nguyền, đó là một API tài liệu tốt cho văn bản dựa UI Ngoài ra, có rất nhiều dự án nguồn mở đang sử dụng những lời nguyền để bạn xem và tìm hiểu

9

Bạn có thể nhận giao diện cơ bản bằng cách sử dụng \r để chuyển đến đầu dòng hiện tại.

Nâng cao hơn một chút là ncurses.

Bước tiếp theo là Newt.

0

wget không thực sự có một giao diện đồ họa, tất cả tôi thấy là thứ mà bạn đã có thể đạt được bằng stdout và echos (ví dụ printf() hoặc std :: cout)

Anyways, cho các hộp thoại đơn giản của MessageBox tốt bụng, nhưng không giới hạn ở đó, cũng có một cái nhìn tại thoại

1

Nếu bạn chỉ cần một thanh tiến trình, điều này có thể được thực hiện trực tiếp với một đơn giản print (mà in thanh), tiếp theo là nhân vật trở lại vận chuyển (ANSI nhân vật # 13), trong đó đặt bạn lại sự bắt đầu của dòng. Dòng sau đó có thể được cập nhật sau đó bằng cách in qua nó.

Đối với các nhu cầu phức tạp hơn, ncurses thực sự là cách tiêu chuẩn để đi.

0

Bạn chỉ có thể sử dụng mã thoát ANSI. Một ví dụ đơn giản trong bash

echo -e "\033[H\033[2J \033[20;20H \033[4mThis is a underlined line.\033[0m" 
Các vấn đề liên quan