QT ортасы. Qt ортасында бағдарламалау зертханалық жұмыстар. Лабораторная работа 3 20 Тема Ипользование вспомогательных функций и вывод нескольких чисел c помощью одного элемента управления 20
Скачать 1.08 Mb.
|
MainWindow() { delete ui; } // В режиме проектирования формы добавьте слот для действия actionDialg: void MainWindow::on_actionDialog_triggered() { dlg->move(400+width(), 250); // размещаем диалоговое окно на правой границе главного окна dlg->show(); // рисуем окно на экране dlg->activateWindow(); // делаем диалоговое окно активным } // Описываем, что нужно нарисовать в окне void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this);// Объект для рисования QString str = QString::number(n);/* Строка, с помощью которой на экране будет отображаться текущая яркость цвета */ painter.drawText(20,70, str);// Отображаем на экране значение яркости цвета QBrush brush(QColor(n,0,0));/* объявляем кисть, число n в данном случае будет опреелять яркость красного цвета */ painter.setBrush(brush);// побключаем кисть QPolygonF polygon; // Объявляем многоугольник qreal r = 100; // радиус окружности, в которую будет вписан многоугольник qreal x0 = 200, y0 = 150; // центр окружности qreal dfi = M_PI / 3; // угол между вершинами 6-угольника for (int i = 0; i< 6; ++i) // рисуем 6-угольник { qreal fi = dfi * i; // угол, соответствующий очередной вершине // определяем координаты вершины qreal x = x0 + r*cos(fi); qreal y = y0 + r*sin(fi); polygon << QPointF(x,y);// добавляем координаты вершины к полигону } painter.drawPolygon(polygon);// рисуем многоугольник (6-угольник) }Dialog() { delete ui; } void Dialog::setN(int n) /* значение n автоматически передается слоту от наборного счетчика с помощью сигнала valueChanged(int) { Parent->n = n; // передаем значение цвета переменной, объявленной в классе гланого окна Parent->update(); // посылаем сигнал «перерисовать окно» }Тема: «Области отсечения»Пример 1: программа, которая рисует 6-угольник, цвет которого можно изменять с помощью немодального диалогового окна с наборными счетчиками (Spin). Диалоговое окно появляется при нажатии кнопки «Диалог».Создайте проект на базе главного окна. Д обавьте дочернее диалоговое окно, описываемое классом Dialog (выберите в меню Файл | Новый файл или проект... , в появившемся диалоговом окне выберите Qt | Класс формы Qt Designer). Спроектируйте окно как показано на рисунке, добавив элемент spinBox. В файл main.cpp добавьте подчеркнутую строку: int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.move(400, 250); // перемещает окно к центру экрана w.show(); return a.exec(); } В файлe dialog.h в описание класса добавьте подчеркнутые строки: #ifndef DIALOG_H #define DIALOG_H #include |
Добавьте в файл mainwindow.h подчеркнутые строки:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include
Пример 2: программа, которая расчерчивает окно правильными 6-угольниками («пчелиными сотами»); размер шестиугольника — 1 / 5 меньшей стороны окна (но не меньше 2); при щелчке мышью внутри шестиугольника, он закрашивается цветом, выбранным с помощью специального окна для выбора цвета.
Создайте приложение на базе главного окна. В файле mainwindow.h добавьте объявления как показано ниже.
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include
Задания для самостоятельного выполнения
Создать приложение, которое расчерчивает окно правильными шестиугольниками (размер – 1/20 высоты окна) и при щелчке мышью в шестиугольнике закрашивает его цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой ячейке пользователь щелкнул мышью, выполнять с помощью областей QRegion!
2. Создать приложение, которое расчерчивает окно косой сеткой (линиями под углом 45 градусов, расстояние между линиями – 1/20 высоты окна) и при щелчке мышью в ромбе закрашивает его цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой ячейке пользователь щелкнул мышью, выполнять с помощью областей QRegion!
3. Создать приложение, которое расчерчивает окно прямоугольной сеткой (линиями, параллельными сторонам окна, расстояние между линиями – 1/20 меньшей стороны окна) и при щелчке мышью в прямоугольнике закрашивает его цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой ячейке пользователь щелкнул мышью, выполнять с помощью областей QRegion!
4. Создать приложение, которое заполняет окно несколькими рядами окружностей (радиус окружности – 1/20 меньшей стороны окна) и при щелчке мышью в окружности закрашивает ее цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой окружности пользователь щелкнул мышью, выполнять с помощью областей QRegion!
5. Создать приложение, которое заполняет окно несколькими рядами равносторонних треугольников (высота треугольника - 1/10 высоты окна) и при щелчке мышью в треугольнике закрашивает его цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в каком треугольнике пользователь щелкнул мышью, выполнять с помощью областей QRegion!
6. Создать приложение, которое заполняет окно несколькими рядами вертикально стоящих ромбов (высота ромба в 2 раза больше ширины) и при щелчке мышью в ромбе закрашивает его цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в каком ромбе пользователь щелкнул мышью, выполнять с помощью областей QRegion!
7. Создать приложение, которое заполняет окно несколькими рядами правильных 5-угольников (выпуклых) и при щелчке мышью в 5-угольнике закрашивает его цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в каком 5-угольнике пользователь щелкнул мышью, выполнять с помощью областей QRegion!
8. Создать приложение, которое заполняет окно несколькими рядами пятиконечных звездочек и при щелчке мышью в звездочке закрашивает ее цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой звездочке пользователь щелкнул мышью, выполнять с помощью областей QRegion!
9. Создать приложение, которое заполняет окно несколькими рядами 6-конечных звездочек и при щелчке мышью в звездочке закрашивает ее цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой звездочке пользователь щелкнул мышью, выполнять с помощью областей QRegion!
10. Создать приложение, которое заполняет окно несколькими рядами 7-конечных звездочек и при щелчке мышью в звездочке закрашивает ее цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой звездочке пользователь щелкнул мышью, выполнять с помощью областей QRegion!
11. Создать приложение, которое заполняет окно несколькими рядами 8-конечных звездочек и при щелчке мышью в звездочке закрашивает ее цветом, выбираемым с помощью немодального диалогового окна с наборными счетчиками (Spin), которые позволяют установить интенсивности красной, зеленой и синей составляющих цвета. Предоставьте возможность сохранять изображение в файле и считывать его из файла.
Проверку, в какой звездочке пользователь щелкнул мышью, выполнять с помощью областей QRegion!