QPainter默认只能在paintEvent里面调用,但是: 在其他事件中绘制窗体,提示信息如下:QPainter::begin: Paint device returned engine == 0, type: 1 绘制操作应该在paintEvent中完成. 有一个属性值,在构造函数中设置可以在paintEvent()之外进行绘制: this->setAttribute(Qt::WA_PaintOutsidePaintEvent); 但是只支持X11,对于 Windows, Mac OS X…
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的操作:QPaintDevice是一个二维空间的抽象,这个二维空间允许QPainter在其上面进行绘制,也就是QPainter工作的空间:QPaintEngine提供了画笔(QPainter)在不同的设备上进行绘制的统一的接口.QPaintEngine类应用于QPainter和QPaintDevice…
1.新建一个Qt Gui应用,项目名称为myDraw,基类选择为QMainWindow,类名设置为MainWindow. 2.在mainwindow.h头文件中添加void paintEvent(QPaintEvent *);绘图事件函数 3.在mainwindow.cpp文件中添加如下代码段 void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); QRectF rect(, , , );//设置矩形 painte…
一界面重载函数 使用方法: 1在头文件里定义函数 protected: void paintEvent(QPaintEvent *event); 2 在CPP内直接重载 void ----------::paintEvent(QPaintEvent *) { //重载函数体 } 执行条件:界面有任何变动都会执行 特别:有时候会积累变化,既界面发生变化时不是立刻执行,可能几次变化合并为只执行一次. 如果要立即执行需要调用函数 详细使用见http://www.cnblogs.com/hnrainll…
我觉得绘制只需要考虑几个问题.简单地说就是谁在什么地方画什么? 在Qt中可以这么回答:QPainter在QPainterDevice中画想画的东西. 举个例子:用QtCreator向导新建一个项目,基类选择QWidget.我们重载paintEvent这个函数. C++ void Widget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.drawRect(50,50,100,100); } QPainter在t…
一.新建一个窗体 用qt designer 新建一个QWidget窗体, 在窗体中右键 选择布局, 发现布局是选择不了的,这个是因为窗体里面没有添加控件, 任意添加空间后便可选择 右键-- 布局-- 水平布局/垂直布局 等 二. 添加控件 我们添加一个group box 控件, 然后 右键 选择 布局 -- 垂直布局 在添加一个horizontalLayout, 再给horizontalLayout里面添加两个button按钮 向group box 里面添加一个label 和 botton 然后…
看到网上有很多不规则窗体的实现,效果很酷.于是使用QT也实现了一个,QT的不规则窗体实现非常简单,只需要设置一个mask(遮掩)图片,这个图片的格式可以使用png或bmp格式,我使用了png格式,默认窗体是矩形的,使用png图像,将需要隔离在窗体之外的区域的像素设置为白色或透明色,其他颜色的区域对应显示出来的窗体.关键代码就几行. #ifndef IRREGULARFORM_H#define IRREGULARFORM_H #include <QWidget>#include "ui…
一.说明: 在实际项目中,主要是使用Qt开发CS程序,当然主要是客户端.公司项目中有这个需求是实时显示多个设备的流量曲线图,设备将流量信息发给服务端,服务端再将信息通过Socket发给Qt客户端,Qt客户端通过Socket接收后实时显示在程序的一个窗口上:这个显示是以曲线图的展示方式. 二.界面模型接到这个功能需求后,使用的界面模型如下图所示,图示已经标示的很清楚了,我就不多详细描述了: 三.功能分析 1.由于设备较多,超过100台,所以不可能每个设备的流量曲线都用一种颜色,因此只选择几种比较明…
1. MVC结构中,model必须作为类的成员变量存在,不可再函数内部申明.否则,会出现函数调用结束,model找不到的错误. 2.QcomboBox可设置为左边空白,右侧一小箭头的形式.代码:comboBox->setStyleSheet("QComboBox{border:1px solid gray:}"); 3.点击复选框后,某些控件由暗变为正常状态.代码:widget->setEnabled(bool); 4.QGroupBox的标题栏带复选框.代码: QGrou…
目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮,那么自定义界面就必不可少.其中有一个操作就是是我们每一个Qter开发者都要会的,而且是经常进行的. Qt::FramelessWindowHint这个属性想必大家都使用过,有些同学可能对这个属性很了解,也用的是炉火纯青,今天我们也来说说这个属性. 关于这个无边框属性网上也有一些文章,有些谈论的是b…