1.41M
Категория: ЭлектроникаЭлектроника

Кнопки, флажки, переключатели

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.cpp

13.

Buttons.h

14.

Buttons. cpp

15.

Buttons.cpp

16.

Buttons.cpp

17.

Элементы настройки
Используются для установки значений, не требующих большой
точности
Базовый класс – 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.cpp

22.

Полоса прокрутки QScrollBar <QScrollBar>
QAbstractSlider
QAbstractScrollArea
Имеет минимальное и максимальное значение, текущее значение,
ориентацию.

23.

main.cpp

24.

Установщик QDial < QDial>
setWrapping()
setNotchTarget()
setNotchesVisible()

25.

main.cpp

26.

Элементы ввода
Однострочное текстовое поле 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. cpp

29.

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.cpp

33.

34.

Запись в файл QTextDocumentWriter
PlainText,
setFormat()
ODF,
HTML
Передать строку с форматом !

35.

Запись в файл в формате PDF
PdfFormat 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.h

41.

Конструктор SyntaxHighlighter. cpp

42.

SyntaxHighlighter.cpp

43.

SyntaxHighlighter.cpp

44.

SyntaxHighlighter.cpp

45.

SyntaxHighlighter.cpp

46.

Метод 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.cpp

50.

Элементы ввода даты и времени
Сигнал: dateTimeChanged()

51.

Проверка ввода : QValidator
QIntValidator()
QDoubleValidator()
QComboBox() , QLineEdit ()
Свой класс для проверки ввода
QValidator:: Invalid
QValidator :: Intermediate
QValidate:: Acceptable
setValidator()
validate()

52.

Проверка ввода : main.cpp

53.

main.cpp

54.

Элементы выбора
списки,
таблицы,
иерархические списки,
выпадающие списки
вкладки

55.

Простой список : QListItem
addItem()
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.

Таблицы QTableWidget
QTableWidgetItem
setItem(i, j), setText(), setIcon();
clone()
setCellWidget()

65.

Таблицы QTableWidget

66.

QComboBox – выпадающий список
addItem(), addItems()
setDuplicatesEnabled(true)
clear()
currentIndex()
setEditable(),
activated ( int), activated ( const QString &)
editTextChanged( const QString &)

67.

68.

Вкладки
setTabEnabled(true), setCurrentIndex()

69.

Виджет панели инструментов QToolBox
addItem()
insertItem()
count()
removeItem()
currentChanged( int)
English     Русский Правила