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



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


Глава 15. Разработка приложений с графическим интерфейсом
2. Применить к виджетам компоновки, начиная с наиболее вложенных видже-
тов;
3. Добавить меню, панели, настроить действия;
4. Настроить объекты на форме с помощью редактора свойств;
5. Сделать сигнально-слотовые соединения, если необходимо;
6. Реализовать логику работы в исходном коде программы.
15.7
Сохранение настроек
Для сохранения настроек в программе мы воспользуемся классом QSettings.
Он позволяет сохранять настройки программы стандартным для программной
платформы способом. В ОС Linux и Mac OS X это конфигурационные файлы
(.ini и. .plist), а под управлением ОС Windows настройки программы можно
сохранять в системный реестр. Также класс QSettings часто используют для
редактирования произвольных. .ini и .plist файлов и ключей системного ре-
естра Windows.
Чтобы добавить поддержку сохранения настроек в программе объявим
несколько дополнительных методов.
private s l o t s :
void s l o t P r e f e r e n c e s A c c e p t e d ( ) ;
private :
void r e a d S e t t i n g s ( ) ;
void w r i t e S e t t i n g s ( ) ;
void a p p l y S e t t i n g s ( ) ;
Метод readSettings будет читать настройки программы и инициализиро-
вать настройками наш диалог. Метод writeSettings будет читать настройки,
установленные в диалоге, и записывать их. Наконец метод applySettings будет
получать текущие настройки от диалога и настраивать соответствующим обра-
зом программу.
void MainWindow : : r e a d S e t t i n g s ( )
{
//Указываем, где хранились настройки. QSettings::NativeFormat — в формате определенном
системой
//QSettings::UserScope — настройки для каждого пользователя отдельно.
//Также устанавливаем имя организации и название программы
Q S e t t i n g s l S e t t i n g s ( Q S e t t i n g s : : NativeFormat , Q S e t t i n g s : : UserScope , " " , qApp
−>a p p l i c a t i o n N a m e ( ) ) ;
//Открываем группу настроек
l S e t t i n g s . beginGroup (SETTINGS_GROUP_VIEW) ;
//Читаем настройки
bool lShowToolBar=l S e t t i n g s . v a l u e (SETTING_SHOW_TOOLBAR, true ) . t o B o o l ( ) ;
m S e t t i n g s D i a l o g −>setShowToolBar ( lShowToolBar ) ;
bool l ShowStatus B ar = l S e t t i n g s . v a l u e (SETTING_SHOW_STATUS_BAR, true ) . t o B o o l
( ) ;
m S e t t i n g s D i a l o g −>setShowStatusBar ( lShowStatusBar ) ;
}
void MainWindow : : w r i t e S e t t i n g s ( )
{
//Указываем как сохранять настройки. QSettings::NativeFormat — в формате определенном
системой
//QSettings::UserScope — настройки для каждого пользователя отдельно.
//Также устанавливаем имя организации и название программы.
Q S e t t i n g s l S e t t i n g s ( Q S e t t i n g s : : NativeFormat , Q S e t t i n g s : : UserScope , " " , qApp
−>a p p l i c a t i o n N a m e ( ) ) ;
Программирование на языке С++ в среде Qt Creator


15.8. Использование сторонних разработок в собственном проекте
415
//Открываем группу настроек
l S e t t i n g s . beginGroup (SETTINGS_GROUP_VIEW) ;
//Записываем настройки
l S e t t i n g s . s e t V a l u e (SETTING_SHOW_TOOLBAR, m S e t t i n g s D i a l o g −>isShowToolBar ( ) ) ;
l S e t t i n g s . s e t V a l u e (SETTING_SHOW_STATUS_BAR, m S e t t i n g s D i a l o g −>
i s S h o w S t a t u s B a r ( ) ) ;
}
void MainWindow : : a p p l y S e t t i n g s ( )
{
//Читаем настройки установленые в диалоге и применяем их
ui−>mainToolBar−>s e t V i s i b l e ( m S e t t i n g s D i a l o g −>isShowToolBar ( ) ) ;
ui−>s t a t u s B a r −>s e t V i s i b l e ( m S e t t i n g s D i a l o g −>i s S h ow S tatu s B ar ( ) ) ;
}
Модифицируем также метод
showPreferencesDialog
, чтобы он вызывал считывание
настроек. Также добавим реализацию метода
slotPreferencesAccepted
.
void MainWindow : : s h o w P r e f e r e n c e s D i a l o g ( )
{
r e a d S e t t i n g s ( ) ; //Считываем настройки и устанавливаем их для диалога
m S e t t i n g s D i a l o g −>show ( ) ; //Показываем диалог настроек
}
void MainWindow : : s l o t P r e f e r e n c e s A c c e p t e d ( )
{
w r i t e S e t t i n g s ( ) ; //Записать новые настройки
a p p l y S e t t i n g s ( ) ; //Применить настройки
}
В конструкторе главного окна соединим сигнал accepted от диалога к
слоту slotPreferencesAccepted:
connect(mSettingsDialog, SIGNAL(accepted()), this, SLOT
(slotPreferencesAccepted()), Qt::UniqueConnection);
15.8
Использование сторонних (third party) разработок в
собственном проекте
Программная реализация уже существует для множества функциональных
возможностей, для большинства распространенных стандартов и для решения
большого количества типичных задач. Например, реализация протокола SMTP
(Simple Mail Transfer Protocol) для электронной почты или библиотека для быст-
рого преобразования Фурье, или даже визуальный элемент для вывода графика
функции — являются примерами задач, с которыми может сталкиваться разра-
ботчик. Поэтому программист может столкнуться с необходимостью исследовать
предметную область, спроектировать и разработать собственный вариант реше-
ния для них, выполняя работу заново с самого начала, хотя для этих задач уже
существует реализация в других программных продуктах (библиотеках, инстру-
ментариях, и т. п.).
Использование сторонних разработок в собственном проекте может значи-
тельно сократить время создания программы, обогатить функциональные воз-
можности, и, возможно, обеспечить совместимость со стандартами и другими
программами, которые уже существуют. Конечно, в таком случае приходится
иметь дело с кодом, созданным другим программистом, который может содер-
жать свои собственные особенности, дефекты, требования к выполнению. Но в
большинстве случаев (если сторонняя разработка достаточно хорошо протести-
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


416
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