Кнопки, флажки, переключатели
1.
Кнопки, флажки, переключателиЭлементы настройки. Элементы ввода
2.
С чего начинаются кнопки?Класс QAbstractButton
QPushButton – нажимающие кнопки
QCheckButton – флажки
QRadioButton – переключатели
Все кнопки могут содержать текст.
setText(), QAbstractButton :: text()
Могут содержать растровое изображение
setIcon(), setIconSize(), iconSize(), icon()
3.
Кнопки : взаимодействие с пользователемСигналы
clicked()
Опрос состояния
isDown(), setDown()
isChecked(), setChecked()
IsEnabled(), setEnabled()
pressed()
released()
toggled()
4.
QPushButton <QPushButton>QPushButton *pcmd= new QPushButton
(“My Button“);
Normal Button
Toggle Button
Flat Button
Pixmap Button
5.
6.
7.
Кнопки свсплывающим меню
8.
Флажки QCheckBox <QCheckBox>9.
Переключатели QRadioButton <QRadioButton>10.
11.
Группировка кнопок QGroupBox <QGroupBox>Не предназначены для
взаимодействия с пользователем
Нужны, чтобы повысить удобство
использования
Класс – контейнер
12.
main.cpp13.
Buttons.h14.
Buttons. cpp15.
Buttons.cpp16.
Buttons.cpp17.
Элементы настройкиИспользуются для установки значений, не требующих большой
точности
Базовый класс – QAbstractSlider <QAbstractSlider>
QSlider
QScrollBar
QDial
sliderChange()
18.
Основные методыИзменение положения setOrientation()
Установка диапазона setRange( , )
setMinimum(), setMaximum()
Psld- > setRange(1,10);
Psld - > setMinimum(1);
Psld - > setMaximum(10);
Qt:: Horisontal
Qt:: Vertical
19.
Основные методыУстановка шага setSingleStep()
setPageStep()
Установка и получение значений
setValue(), value()
Signal : sliderMoved (int)
Signal : valueChanged(), setTracking()
Signal : sliderPressed(), slider Released()
20.
Ползунок QSlider <QSlider>setTickPosition(), setTickInterval()
21.
main.cpp22.
Полоса прокрутки QScrollBar <QScrollBar>QAbstractSlider
QAbstractScrollArea
Имеет минимальное и максимальное значение, текущее значение,
ориентацию.
23.
main.cpp24.
Установщик QDial < QDial>setWrapping()
setNotchTarget()
setNotchesVisible()
25.
main.cpp26.
Элементы вводаОднострочное текстовое поле QLineEdit
Редактор текста QText
Запись в файл QTextDocumentWriter
Счетчик
Элемент ввода даты и времени QDateTimeEdit
Проверка ввода QValidator
QSpinBox
27.
Однострочное текстовое поле QLineEdit <QLineEdit>Метод text()
Сигналы:
textChanged(), textEdited(), returnPressed()
Метод setReadOnly( true) , слот setText()
Метод setEchoMode( password)
Методы setMaxLength(), maxLength()
Слоты для работы с буфером обмена:
copy(), cut(), paste()
Методы undo(), redo(), isUndoAvailable(), isRedoAvailable()
28.
main. cpp29.
30.
Редактор текста QTextEdit <QTextEdit>QTextEdit : public QAbstractScrollArea
QPlainTextEdit
Методы : setReadOnly(), setHtml(), copy(), cut(), paste()
selectAll(), deselect(), clear()
Сигналы:
textChanged(), selectionChanged()
QTextCursor , QTextEdit :: textCursor()
QTextDocument, QTextEdit:: document(),
QTextEdit:: setDocument()
QTextEdit
QTextCursor
QTextDocument
31.
QTextDocumentСлоты
undo(), redo()
Сигналы:
undoAvailable(), redoAvailable()
setHtml(), insertHtml()
Метод setPlainText(), слот insertPlainText()
Слот append(), слот undo(), метод find()
Слоты zoomIn(), zoomOut()
32.
main.cpp33.
34.
Запись в файл QTextDocumentWriterPlainText,
setFormat()
ODF,
HTML
Передать строку с форматом !
35.
Запись в файл в формате PDFPdfFormat NativeFormat
PostScriptFormat
Можно использовать класс QPdfWriter
Чтобы использовать класс
QPrinter, нужно добавить в файл
проекта строку
QT + = printsupport
36.
Подсветка синтаксисаQTextEdit : QSintaxHighLighter , highLightBlock()
/* virtual * / void MyHighlighter :: highlightBlock ( const QString &str)
{
for (int i=0; i <str.length() ; ++i)
If ( str. at (i). isNumber ()) {
setFormat (i, 1, Qt:: red);
}
}
}
37.
MyHighLighter *pHighlighter = new MyHighlighter (ptxt- > document ());
Указатель на объект
класса QTextDocument
QTextEdit, QTextBrowser, QTextFrame, QTextTable, QGraphicsTextItem,..
38.
Пример: виджет, который делает подсветкусинтаксиса программ на языке С++
main.cpp
39.
40.
SyntaxHighlighter.h41.
Конструктор SyntaxHighlighter. cpp42.
SyntaxHighlighter.cpp43.
SyntaxHighlighter.cpp44.
SyntaxHighlighter.cpp45.
SyntaxHighlighter.cpp46.
Метод getKeyWord()SyntaxHighlighter.cpp
47.
Виджеты счетчиковQAbstractSpinBox – базовый класс
Классы – наследники
QSpinBox
QDateTimeEdit
QDoubleSpinBox
Общие методы: setWrapping(), stepUp(), stepDown(),
setSpecialValueText ()
Pspb - > setSpecialValueText( “ default“);
48.
Виджеты счетчиковQSpinBox
setRange()
setValue(), value()
Signals:
valueChanged( int),
valueChanged( const Qstring &) ;
Pspb - > setPrefix( “ (“);
Pspb - > setSuffix ( “ )“);
49.
main.cpp50.
Элементы ввода даты и времениСигнал: dateTimeChanged()
51.
Проверка ввода : QValidatorQIntValidator()
QDoubleValidator()
QComboBox() , QLineEdit ()
Свой класс для проверки ввода
QValidator:: Invalid
QValidator :: Intermediate
QValidate:: Acceptable
setValidator()
validate()
52.
Проверка ввода : main.cpp53.
main.cpp54.
Элементы выборасписки,
таблицы,
иерархические списки,
выпадающие списки
вкладки
55.
Простой список : QListItemaddItem()
clear()
insertItems()
insertItem()
setIcon()
setItemWidget()
itemWidget()
56.
57.
Выбор и изменение элементов пользователемcurrentItem()
selectedItems()
setSelectionMode(), QAbstractItemView :: MultiSelection
QAbstractItemView :: NoSelection
Сигналы:
itemClicked (), itemDoubleClicked(), itemSelectionChanged()
setFlags ( Qt :: ItemIsEditable);
Pitem - > setFlags( Qt :: ItemIsEditable | Qt :: ItemIsEnabled);
itemChanged( QListWidgetItem), itemRenamed (QListWidgetItem)
QAbstractItemView :: SingleSelection
58.
Режим пиктограммsetSelectionMode( QAbstractItemView :: MultiSelection)
setViewMode ( QListView :: IconMode)
setFlow( QListView:: TopToBottom)
59.
60.
Иерархические спискиQTreeWindow
Есть конструктор копирования и метод clone()
setIcone(), setText()
sortItem(), setSortingEnabled(true)
sortColumn()
addChildren()
insertChildren()
setSelectionMode(QAbstractItemView:: MultiSelection)
61.
62.
Иерархические спискиОбход всего списка
QTreeWidgetItemIterator it( &twg, QTreeWidgetItemIterator :: All);
while (* (++it)){
qDebug() < < (*it) - > text (0);
}
// QTreeWidgetIterator :: Selected
63.
Иерархические спискиСигналы:
itemSelectionChanged()
itemClicked ( QTreeWidgetItem *, int);
itemDoubleClicked ( QTreeWidgetItem *, int)
itemActivated (QTreeWidgetItem *, int)
Технология drag & drop
Pitem - > setFlags (Qt :: ItemIsDragEnabled | Qt :: ItemIsEditable);
64.
Таблицы QTableWidgetQTableWidgetItem
setItem(i, j), setText(), setIcon();
clone()
setCellWidget()
65.
Таблицы QTableWidget66.
QComboBox – выпадающий списокaddItem(), addItems()
setDuplicatesEnabled(true)
clear()
currentIndex()
setEditable(),
activated ( int), activated ( const QString &)
editTextChanged( const QString &)
67.
68.
ВкладкиsetTabEnabled(true), setCurrentIndex()
69.
Виджет панели инструментов QToolBoxaddItem()
insertItem()
count()
removeItem()
currentChanged( int)
electronics