style()->drawPrimitive()使用案例
时间: 2024-02-25 21:52:14 浏览: 204
托管DirectX教程:第3部分-渲染基元
在Qt中,可以使用style()函数来获取当前应用程序的样式,然后使用它的各种函数来绘制各种控件。其中一个函数是drawPrimitive(),它可以用来绘制预定义的基本形状,如线段、矩形、椭圆等等。
下面是一个简单的使用案例,演示了如何使用style()->drawPrimitive()函数来绘制一个矩形和一个椭圆:
```cpp
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget widget;
widget.resize(400, 300);
widget.setWindowTitle("Draw Primitives Example");
QPainter painter(&widget);
// 绘制一个矩形
QStyleOption opt;
opt.initFrom(&widget);
opt.rect = QRect(50, 50, 100, 100);
opt.state = QStyle::State_Enabled | QStyle::State_Raised;
widget.style()->drawPrimitive(QStyle::PE_PanelButtonBevel, &opt, &painter);
// 绘制一个椭圆
opt.rect = QRect(200, 50, 100, 100);
widget.style()->drawPrimitive(QStyle::PE_IndicatorButtonDropDown, &opt, &painter);
widget.show();
return app.exec();
}
```
在这个例子中,我们创建了一个QWidget窗口,然后在窗口上创建了一个QPainter对象。使用QStyleOption类来指定绘制的区域和状态,然后调用style()->drawPrimitive()函数绘制矩形和椭圆。注意,QStyle::PE_PanelButtonBevel和QStyle::PE_IndicatorButtonDropDown是预定义的常量,表示矩形和椭圆形状。最后,我们将窗口显示出来并进入Qt的事件循环中。
阅读全文