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



Download 5,27 Mb.
Pdf ko'rish
bet162/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   158   159   160   161   162   163   164   165   ...   193
Bog'liq
Book-qtC


Глава 13. Создание графического интерфейса средствами Qt
#include 
#include 
i n t main ( i n t lArgc , char ∗ lArgv [ ] )
{
//Создаём объект QApplication, который инициализирует и настраивает оконную программу,
//управляет её выполнением с помощью цикла обработки событий
Q A p p l i c a t i o n l A p p l i c a t i o n ( lArgc , l A r g v ) ;
QLabel l L a b e l ;
//Создаём виджет QLabel — метка
l L a b e l . s e t T e x t ( " I am W i d g e t ! " ) ;
//Задаём текст для метки
l L a b e l . setGeometry ( 2 0 0 , 2 0 0 , 3 0 0 , 1 5 0 ) ;
//Задаём размеры — позицию (x, y) ширину и высоту. Задаём выравнивание текста
l L a b e l . s e t A l i g n m e n t ( Qt : : AlignHCenter | Qt : : AlignVCent er ) ;
//Класс QFont используют для настройки параметров шрифта.
//Выбираем семейство шрифтов Arial Black и размер 12.
QFont l B l a c k F o n t ( " A r i a l B l a c k " , 1 2 ) ;
l L a b e l . s e t F o n t ( l B l a c k F o n t ) ; //Задаём шрифт для метки
l L a b e l . show ( ) ; //Вызываем метод show() для показа метки на экране.
return l A p p l i c a t i o n . e x e c ( ) ; //Запускаем программу на выполнение exec() выполняет
//цикл обработки событий. Программа ожидает действия пользователя и выполняет их обработку.
}
Как видим, элементы, из которых состоят интерфейсы в Qt, имеют собствен-
ные позицию и размер — так называемую «геометрию» — и, таким образом,
занимают соответствующую прямоугольный участок на экране (см. рис. 13.1).
Также каждый из элементов имеет настройки, которые определяют его поведе-
ние и вид
.
Рис. 13.1: Первый оконный проект
Для создания структуры виджеты организовывают в иерархию по принципу
«часть — целое». Каждый из виджетов может содержать другие виджеты. Та-
кой визуальный элемент становится «родителем» (родительским виджетом)
для элементов, которые он содержит. Отметим, что такие отношения не следу-
ет путать с наследованием в C++ — отношениями между классами в программе.
Отношения между виджетами являются отношениями между объектами. Такие
отношения порождают несколько последствий:
• родительский элемент будет отвечать за удаление дочернего элемента: если
родительский виджет удалят — то он автоматически удалит и все дочерние
элементы;
• родительский виджет размещает дочерние виджеты внутри себя, части до-
черних виджетов, которые выходят за пределы родителя будут невидимы-
ми;
Программирование на языке С++ в среде Qt Creator


13.1. Виджеты (Widgets)
357
• часть состояния родительского виджета передаётся дочерним — это каса-
ется некоторых свойств (видимость, активность) и стилей, которые накла-
дываются на визуальный элемент.
Виджеты, которые не имеют родителя (виджеты верхнего уровня), имеют
вид отдельных окон в программе. Рассмотрим пример. Назовём новый проект
ParentExample
. Файл проекта будет содержать обычные для GUI-проекта на-
стройки:
TEMPLATE = app
TARGET = ParentExample
QT += w i d g e t s
Для виджета, который мы будем использовать в качестве главного окна созда-
дим новый класс. Для этого в категории Files and Classes (Файлы и классы)
выберем раздел С++ и выберем С++ Class (см. рис. 13.2).
Рис. 13.2: Мастер создания нового класса
Следующим шагом будет создание нескольких элементов на окне. Для это-
го откроем файл parentwidget.cpp и изменим код конструктора класса. Для
отображения элементов достаточно создать их в конструкторе класса и задать
ParentWidget
как отца для них. Код parentwidget.cpp выглядит так:
#include " p a r e n t w i d g e t . h "
#include 
#include 
#include 
ParentWidget : : ParentWidget ( QWidget ∗ p a r e n t ) :
QWidget ( p a r e n t )
{
//Создаём метку, указывая родительский виджет — this, то есть экземпляр класса ParentWidget.
QLabel ∗ l L a b e l=new QLabel ( t h i s ) ;
//Позиция относительно левого верхнего угла родительского виджета.
l L a b e l −>setGeometry ( 5 0 , 0 , 1 0 0 , 3 0 ) ;
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


358
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   158   159   160   161   162   163   164   165   ...   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