Что лучший способ состоит в том, чтобы сделать простым кросс-платформенным GUI в C++? [закрытый]

Предположим, у вас есть 2 кучи похожих объектов, скажем, лучших строф вашего любимого поэта, по 5 и 2 соответственно. Большой набор содержит меньший набор? Как проверить: 1) для любой строфы в меньшей куче вы можете найти ее в большей. 2) меньшая куча не содержит чего-то, чего нет в большей.

Таким образом, мы можем использовать этот псевдокод для проверки:

for object in smaller:
    if object not in bigger:
       return 'we found object from smaller absent in bigger'
    else:
       go to next object
return 'all is ok - all objects from smaller are in bigger'

Если вы не нашли такой объект, вы подходите к концу алгоритма и думаете, что меньше - это подмножество большего.

Теперь представьте, что маленькая куча имеет 0 строф. Применяя те же правила выше, мы выполняем 0 проверок, а также не находим объект от меньшего, который отсутствует в большем.

Так что правильно и удобно считать пустую строку подмножеством любой другой строки. Даже сама. И это реализовано в python.

    >>> '' in 'adfsf'
    True
    >>> '' in ''
    True
5
задан joshcomley 22 May 2009 в 10:25
поделиться

7 ответов

Используйте Qt4. http://qt-project.org/

Это самодостаточный фреймворк, который содержит инструменты разработчика, конструкторы графического интерфейса, классы String / IO / XML / Thread, элементы управления аудио / видео, HTML-виджеты и многие, многие другие больше возможностей. Он построен так, чтобы быть полностью многоплатформенным, единый код для всех систем.

В отличие от wxWidgets, он выглядит более объектно-ориентированным, имеет гораздо лучшую документацию и лучше поддерживается.

См. В Интернете: ] http://qt-project.org/doc/qt-4.8/

РЕДАКТИРОВАТЬ- 6 лет с момента первоначального ответа. Я должен указать на Qt5 - http://www.qt.io/

23
ответ дан 18 December 2019 в 05:12
поделиться

Я бы порекомендовал wxWidgets . Он кроссплатформенный и работает с Visual C ++.

Также существует Qt (см. Сообщение Колина), который использует KDE (менеджер рабочего стола Linux). Однако у него более ограниченная лицензия.

11
ответ дан 18 December 2019 в 05:12
поделиться

Вы также можете ознакомиться с FLTK

FLTK (произносится как «fulltick») - это кроссплатформенный набор инструментов графического интерфейса C ++ для UNIX® / Linux® (X11), Microsoft ® Windows® и MacOS® X. FLTK обеспечивает современные функциональные возможности графического интерфейса пользователя без лишних слов и поддерживает трехмерную графику через OpenGL® и его встроенную эмуляцию GLUT.

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

Вот несколько кратких скринкастов

9
ответ дан 18 December 2019 в 05:12
поделиться
  1. GTK +
  2. QT
  3. wxWidgets

Если вы спрашиваете о .NET, тогда (при условии, что это Visual C ++ 2008), тогда и Linux, и Mac Пользователи OS X могут запускать приложения .NET с помощью Mono .

5
ответ дан 18 December 2019 в 05:12
поделиться

Я бы посоветовал вам взглянуть на инструментарий Qt . Он содержит кроссплатформенные элементы пользовательского интерфейса. Это можно использовать с VS2008.

3
ответ дан 18 December 2019 в 05:12
поделиться

Поскольку пользовательский интерфейс настолько прост, я бы посоветовал вам начать в Windows с Visual Studio и хранить все элементы пользовательского интерфейса в отдельных файлах, полностью отделив их от остальной части вашего приложения. .

Затем в OS X вы получите лучшие визуальные результаты, создав приложение Какао и написав пользовательский интерфейс на Objective C в сочетании с Interface Builder. Затем вы можете легко подключить интерфейс к вашему внутреннему коду C ++. (Компилятор Objective C понимает код C ++ в том же файле, что и код Objective C.)

Это позволит вам создать кроссплатформенное приложение, которое отлично выглядит как в Windows, так и в OS X, что-то вроде QT или других кросс-платформенных приложений. комплекты платформ, вероятно, никогда не будут полностью реализованы.

5
ответ дан 18 December 2019 в 05:12
поделиться

Gtkmm - это C ++, и доказано, что он работает в Linux и Windows с Visual Studio.

1
ответ дан 18 December 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: