Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet192/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   185   186   187   188   189   190   191   192   193
Bog'liq
Book-qtC


Глава 15. Разработка приложений с графическим интерфейсом
рована и рассчитана на подобное использование, и поставляется как библиотека
или фреймворк) это предоставляет серьезные преимущества, поскольку дает воз-
можность избежать повторного решения задачи, которая была решена другим
разработчиком ранее. Особенно это важно для свободного программного обес-
печения с открытым кодом, которое на полную мощность пользуется возможно-
стями повторного использования.
Конечно, играет важную роль способ лицензирования программного кода, ко-
торый будет предоставлять возможности для использования текста или готовой
программы в собственных целях. Лицензия может также давать возможность
использовать программное обеспечение или его исходный код в коммерческих
проектах. Поэтому особенно важно убедиться в лицензионной чистоте кода, ко-
торый Вы будете использовать в своем проекте и в ограничениях, которые ли-
цензия накладывает на его использование.
В нашем примере мы используем библиотеку Qwt, которая дает дополни-
тельный набор виджетов для вывода графиков, гистограмм, значений, а также
несколько дополнительных элементов управления. Исходный код и документа-
цию можно получить на сайте http://qwt.sourceforge.net.
Откроем папку с исходным кодом и файл проекта qwt.pro. Обратите внима-
ние: файл qwt.pro содержит строку
include(qwtconfig.pri)
Файл qwtconfig.pri служит для настройки компиляции Qwt. Для компиля-
ции примеров и тестового проекта для исследования Qwt откомментируйте:
QWT_CONFIG
+= QwtExamples
QWT_CONFIG
+= QwtPlayground
Также закомментируйте строку для того, чтобы построить отдельную ди-
намическую библиотеку для Qwt, которую мы будем использовать (эту строку
необходимо комментировать только под Windows):
QWT_CONFIG += QwtDesignerSelfContained
Далее отключите Shadow Build и запустите компиляцию в режиме Release.
После завершения компиляции мы получим такое размещение файлов :
• qwt/designer/plugins/designer— расширение для QtDesigner, которое
даст нам возможность использовать виджеты Qwt при визуальном проек-
тировании интерфейса;
• qwt/lib — содержит динамически загружаемую библиотеку Qwt;
• qwt/src — содержит заголовочные файлы необходимые для разработки;
Создадим в папке нового GUI проекта подпапку и назовем ее 3rdparty. Добавим
внутри нее еще одну папку с названием qwt. Наконец создадим внутри qwt еще
две папки: lib и include. Внутрь папки lib скопируем содержимое qwt/lib —
построенных библиотек qwt. А в папку include скопируем все файлы qwt/src,
которые имеют расширение .h. Наконец для удобства создадим файл для вклю-
чения в проект 3rdparty/qwt/qwt.pri и добавим содержание:
INCLUDEPATH += $$PWD/ i n c l u d e
LIBS += −L$$PWD/ l i b
LIBS += −lqwt
Программирование на языке С++ в среде Qt Creator


15.9. Задачи для самостоятельного решения
417
Первая строка .pri-файла указывает путь к размещению .h-файлов. Пе-
ременная $$PWD хранит значение текущей папки, то есть той, где нахо-
дится файл qwt.pri. Вторая строка указывает размещение библиотек (-
L <путь_к_библиотекам>). Последняя строка указывает на необходимость
связывать программу во время компиляции с библиотекой qwt (-l <назва-
ние_библиотеки
>, где название_библиотеки — название файла библиотеки без
расширения и префикса lib).
Отметим, что для того чтобы построить проект в Debug режиме необходимо
добавить соответствующие (тоже построенные в Debug режиме) библиотеки. То
же касается и Release режима.
Теперь добавим этот файл к проекту PlotExample.pro. После строк
QT
+= c o r e g u i
g r e a t e r T h a n (QT_MAJOR_VERSION, 4 ) : QT += w i d g e t s
добавим
include(3rdparty/qwt/qwt.pri)
Теперь мы можем воспользоваться библиотекой Qwt в проекте. Создадим ви-
джет для графика и добавим его в окно.
#include 
#include 
#include 
#include 
#include 
MainWindow : : MainWindow ( QWidget ∗ p a r e n t ) :
QMainWindow ( p a r e n t ) , u i (new Ui : :
MainWindow )
{
ui −>s e t u p U i ( t h i s ) ;
s e t C e n t r a l W i d g e t (new QWidget ) ; //Центральный виджет
QLayout ∗ l L a y o u t = new QVBoxLayout ;
c e n t r a l W i d g e t ( )−>s e t L a y o u t ( l L a y o u t ) ; //компоновщик для размещения графика
QwtPlot ∗ l P l o t = new QwtPlot ; //Визуальный элемент — График
l Layou t −>addWidget ( l P l o t ) ;
QwtPlotCanvas ∗ lCanvas = new QwtPlotCanvas ( ) ;
//Объект для отображения
lCanvas−>s e t F r a m e S t y l e ( QFrame : : Box | QFrame : : P l a i n ) ; //нашего графика
l P l o t −>setCanvas ( lCanvas ) ;
l P l o t −>s e t A x i s T i t l e ( QwtPlot : : xBottom , " x " ) ; //Название оси — x
l P l o t −>s e t A x i s S c a l e ( QwtPlot : : xBottom , −10.0 , 1 0 . 0 ) ; //Границы оси x
l P l o t −>s e t A x i s T i t l e ( QwtPlot : : yLeft , " y " ) ; //Название оси — y
l P l o t −>s e t A x i s S c a l e ( QwtPlot : : yLeft , −10.0 , 1 0 . 0 ) ; //Границы оси у
new QwtPlotPanner ( lCanvas ) ; //Добавляем инструмент для перетягивания смещения
//графика указателем мышки
new Q w t P l o t M a g n i f i e r ( lCanvas ) ; //Добавляем инструмент для увеличения уменьшения
//графика роликом мышки
}
После запуска программы мы увидим пустое окно графика на экране
(рис. 15.13).
15.9
Задачи для самостоятельного решения
1. Добавьте вывод на панель статуса текущей позиции курсора в текстовом
редакторе. Используйте класс QStatusBar и его метод showMessage(), ко-
торый принимает как параметр сообщение и количество миллисекунд в
течении которых сообщение видимо. Используйте сигнал
QPlainTextEditor::
currentPositionChanged()
для определения изменения позиции курсора.
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


418
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   185   186   187   188   189   190   191   192   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish