Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Popen и прочее
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
AndreyR
Здравствуйте. Пишу первую программу на Qt. Точнее, переношу с C++. В проге на C++ используются разные операции, такие как чтение/запись файла, выполнение консольных команд с помощью popen. Подскажите пожалуйста, можно ли использовать уже имеющиеся конструкции C++, или имеет смысл все эти операции переписать с использованием средств Qt? Имеет ли этот момент принципиальное значение для переносимости программы? И еще попутно хотел спросить, нужно ли использовать типы данных Qt (qint, QString) или можно оставить сишные?
maint
Цитата(AndreyR @ 30.1.2011, 5:09) *
Здравствуйте. Пишу первую программу на Qt. Точнее, переношу с C++. В проге на C++ используются разные операции, такие как чтение/запись файла, выполнение консольных команд с помощью popen. Подскажите пожалуйста, можно ли использовать уже имеющиеся конструкции C++, или имеет смысл все эти операции переписать с использованием средств Qt? Имеет ли этот момент принципиальное значение для переносимости программы? И еще попутно хотел спросить, нужно ли использовать типы данных Qt (qint, QString) или можно оставить сишные?

QT это всего лишь библиотека. Так что можно оставить все как есть, если компилятор позволит. И то если использовались экзотические изобретения M$ или Borland, то может и кое что переписать надо.
AndreyR
Ясно. Тут я забыл пояснить, что пишу linux-программу. И в идеале должна получиться программа, которая будет работать без перекомпиляции на разных дистрибутивах linux. То есть, чтобы можно было скопировать прогу на компьютер и тут же запустить без всяких дополнительных манипуляций. Я подумал, что в Qt есть много разнообразных средств, заменяющих стандартные конструкции C++, именно для того, чтобы можно было переносить программу с одного компьютера на другой без перекомпиляции. А если испольовать стандартные средства C++, может появиться необходимость перекомпилировать программу на каждом компьютере заново. Я правильно понял?

Просто этот момент (возможность свободно запускать собранный бинарник на разных компьютерах без пересборки) мне очень важен. Извините, если чего-то не догоняю.
maint
Цитата(AndreyR @ 30.1.2011, 21:03) *
Ясно. Тут я забыл пояснить, что пишу linux-программу. И в идеале должна получиться программа, которая будет работать без перекомпиляции на разных дистрибутивах linux. То есть, чтобы можно было скопировать прогу на компьютер и тут же запустить без всяких дополнительных манипуляций. Я подумал, что в Qt есть много разнообразных средств, заменяющих стандартные конструкции C++, именно для того, чтобы можно было переносить программу с одного компьютера на другой без перекомпиляции. А если испольовать стандартные средства C++, может появиться необходимость перекомпилировать программу на каждом компьютере заново. Я правильно понял?

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

тогда просто надо собрать программу, как статическую. И Qt тут вообще никаким боком. Ключевое слово при сборке программы -static. Это флаг компилятора и линкера. По идее все что нужно будет упаковано в один исполняемый файл. Размер должен быть приличным. Только так. А конструкции языка пофиг для бинарника-исполнимого файла.
AndreyR
Спасибо! Qt я как раз настроил на статическую сборку. Файл получается метров около 15. Ну да это не столь важно в данном случае.

Собственно Qt я использую ради графического интерфейса

Просто даже интересно, для чего разработчики включили в Qt разнообразные конструкции, дублирующие функциональность C++? :)
maint
Цитата(AndreyR @ 30.1.2011, 21:35) *
Спасибо! Qt я как раз настроил на статическую сборку. Файл получается метров около 15. Ну да это не столь важно в данном случае.

Собственно Qt я использую ради графического интерфейса

Просто даже интересно, для чего разработчики включили в Qt разнообразные конструкции, дублирующие функциональность C++? :)

там не дубляж, а более широкие возможности. Если посмотреть QString то видно, что String стандартная, так мелочевка, ничего не значащий пустячек. А QString преобразования кодировок, проверки и пр. мелкие приятности, которых не могло даже буть задумано в C++. О графике я уже не говорю. Для нее много чего было введено. ПРичем для кроссплатформенной. Разные системы, машины,устройства
AndreyR
Ага. Понятно
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.