2008-09-02 39 views
5

Có thư viện UI nào có thể xây dựng cả giao diện người dùng văn bản (ncurses) và giao diện người dùng đồ họa (GTK? QT?) Từ cùng một nguồn không? Tôi biết rằng debconf có thể được sử dụng với nhiều giao diện người dùng khác nhau, tôi muốn xây dựng một thứ tương tự nhưng có thể lập trình được.GUI/thư viện TUI linux

Trả lời

0

lẽ tcl/tk sẽ cung cấp những gì bạn muốn http://www.tcl.tk/

Dưới đây là các trang trên interfacing với lời nguyền. Có một tuyên bố có tích hợp với ncurses.

http://www2.tcl.tk/2372

+0

Tôi biết về nó đang chạy trên môi trường Đồ họa. Bạn có thể liên kết với thông tin về việc chạy nó trên ncurses? –

1

Cursed GTK, nhưng có vẻ như một chút ngày. Tôi tìm thấy một số tài liệu tham khảo đến một cổng Qt để ncurses được gọi là Qt Console, nhưng nó dường như đã biến mất.

2

bạn có thể viết chương trình của mình để sử dụng ncurses và sau đó sử dụng PDCurses để chuyển đổi nó thành ứng dụng X11 - như quảng cáo readme.

Tôi biết điều đó vì tôi đã sử dụng nó như là lời nguyền di động, mặc dù tôi chưa bao giờ được thử nghiệm khả năng của nó X11

0

Không hẳn một thư viện nhưng bạn có thể xem xét việc viết một ứng dụng web mà thoái hóa tốt để Lynx

2

GoboLinux kẻ đã tạo ra bộ công cụ riêng của họ cho trăn gọi là AbsTK, họ sử dụng nó cho trình cài đặt của họ, mà thực sự hoạt động thực sự tốt. Tôi chưa bao giờ sử dụng bộ công cụ này, nhưng các ứng dụng được xây dựng với nó dường như chắc chắn.

0

Tôi nghĩ rằng những gì được sử dụng để cấu hình hạt nhân Linux khi biên dịch là hộp thoại/cdialog/xdialog. Nhưng nó đã được một thời gian kể từ khi tôi đã biên dịch một hạt nhân, vì vậy bộ nhớ của tôi có thể được tắt. Liên kết đầy hứa hẹn nhất mà tôi có thể tìm thấy là liên kết này cho Xdialog.

1

Bằng cách sử dụng thư viện nhắm mục tiêu cả môi trường chế độ văn bản và giao diện đồ họa, bạn có nguy cơ bị mắc kẹt với điều tồi tệ nhất của cả hai thế giới.

Bạn sẽ tắt cấu trúc mã của mình tốt hơn bằng cách sử dụng MVC pattern và cung cấp chế độ xem và bộ điều khiển riêng cho từng nền tảng bạn nhắm mục tiêu. Đẩy tất cả logic xuống các lớp mô hình có một số lợi ích khác:

  • Mã sẽ dễ kiểm tra hơn vì bạn buộc phải giữ giao diện người dùng ra khỏi logic miền thực.
  • Chương trình của bạn có thể có giao diện người dùng có ít điểm chung, ví dụ: một giao diện người dùng web hoặc giao diện người dùng được thúc đẩy bởi lời nói.
  • Bạn có thể chạy chương trình một cách dễ dàng mà không có giao diện người dùng nào (ví dụ: kịch bản lệnh) bằng cách truy cập trực tiếp vào các lớp mô hình giống như cách các lớp trình điều khiển thực hiện.
3

Thư viện hỗ trợ YaST độc lập làm ncurses, gtk và qt với một codebase cung cấp những gì bạn đang tìm kiếm và nó không liên kết với chính YaST.

Thực tế libyui chỉ yêu cầu thư viện chuẩn C++ và phtread (IIRC). Các plugin UI yêu cầu tất nhiên các thư viện tương ứng (Qt, ncurses). YaST sử dụng libyui thông qua một tập hợp các ràng buộc YCP xuất khẩu một YCP như API trên đầu trang của libyui.

Thư viện là một chút lowlevel (một lớp bên dưới một vòng lặp sự kiện), collaus Klaus Kämpf của tôi đã viết về cách sử dụng nó một thời gian trước đây trong his blog, bao gồm ràng buộc với ngôn ngữ kịch bản nó bằng cách sử dụng swig.

Phần duy nhất là SUSE cụ thể là bao bì, vì vậy bạn sẽ cần phải gói nó cho mình. Stackoverflow không cho phép tôi liên kết nhiều lần. Mã của thư viện được liên kết từ blog Klaus. Thay thế libyui cho "qt" và "ncurses" cho mã của plugin.

Đồng thời google cho "YaST Independence From YCP" để tìm mục nhập blog từ Andreas Jäger về chủ đề này.

+0

Lưu ý rằng có một dự án Google SoC đang diễn ra để làm cho libyui độc lập hơn nữa: http://nbprashanth.wordpress.com/category/gsoc – duncan

Các vấn đề liên quan