一个简单的画图程序
Qt的双缓冲
双缓冲就是在绘制控件的时候,首先把要绘制的内容放到一个图片上,然后再将图片一次性画到控件上
设计目标
设计步骤
1、绘图区的实现
首先我们在绘图区会有画各种图形,用鼠标来画的话,那么就会有鼠标点击事件,鼠标移动事件,重绘控件事件,绘制的时候有画笔,画笔的风格,宽度,颜色。。。
Qt中的setPalette函数具体是什么作用?解释一下这句话 setPalette(QPalette( QColor(250, 250, 200)));
QColor( 250, 250, 200)会生成一个QColor对象作为QPalette构造参数
这个函数的作用是为当前窗口构建一个调色板,它的button颜色为QColor( 250, 250, 200),其他的颜色是基于这个颜色自动的计算,Wondow也是button颜色。
所有Qt窗口部件都拥有一个调色板并使用它绘制自己.通常,活动状态的窗口标题栏为蓝色的,而非活动(inactive)状态的窗口的标题栏显示为灰色的;活动状态的窗口和非活动状态的窗口都可以包含状态为不可用的窗口不见,一个不可用的窗口不见(包括该窗口不见包含的子窗口部件)显示为灰色的,用户是无法同它进行交互的.通过改变窗口不见的调色板的各个组中的颜色,能够改变窗口不见的显示颜色,比如改变背景色,文本颜色等.
QPalete::Window,通常指窗口部件的背景色;
QPalette:WindowText,通常指窗口不见的前景色;
QPalette::Base,指文本输入窗口部件(比如QtextEdit,QLinedit等)的背景色.
QPalette::Text,与QPalette::Base一块使用,指文本输入窗口部件的前景色;
QPalette::Button,指按钮窗口部件的背景色;QPalette::ButtonText,指按钮窗口部件的前景色.
1、首先我们构造函数就是设置一下我们先在你图片上画的那个图片
DrawWidget::DrawWidget(QWidget*parent):
QWidget(parent)
{//构造函数
setAutoFillBackground(true); //自动设定背景颜色
setPalette(QPalette(Qt::white)); //设置调色板的颜色为白色
pix=newQPixmap(size()); //这个pixmap对象用来接受准备绘制到空间的内容
pix->fill(Qt::white); //填充这个图片的背景是白色
setMinimumSize(600,400); //设置绘图区域窗体的最小大小
}
2、然后首先确定画笔的各个属性
void DrawWidget::setStyle(int s)
{