<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1、QMessageBox的简单的用法:QMessageBox::information(this,"infor","this is OK");</span>
2、pushbutton设置透明按钮ui.m_btnOk->setFlat(true);
3、Qt中使用定时器:
test8_2A.h文件:
#ifndef TEST8_2A_H
#define TEST8_2A_H
#include <QtGui/QMainWindow>
#include "ui_test8_2a.h"
class Test8_2A : public QMainWindow
{
Q_OBJECT
public:
Test8_2A(QWidget *parent = 0, Qt::WFlags flags = 0);
~Test8_2A();
// 重写此函数 (继承自QObject)
virtual void timerEvent ( QTimerEvent * event );
private:
Ui::Test8_2AClass ui;
//
int m_timerId; // 每个Timer有一个id
};
#endif // TEST8_2A_H
test8_2A.c文件:
#include <QTime>
#include <QDebug>
Test8_2A::Test8_2A(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
// 启动定时器, 指定时间间隔(毫秒)
m_timerId = startTimer(1000);
}
Test8_2A::~Test8_2A()
{
}
// 定时器处理函数
void Test8_2A::timerEvent ( QTimerEvent * event )
{
// 可以有多个定时器,每个的定时器有不同的处理
if(event->timerId() == m_timerId)
{
QTime now = QTime::currentTime();
QString text = now.toString("HH:mm:ss");
//qDebug() << text;
ui.labelTime->setText(text);
}
}
4、Qt中sleep的使用
如果平台是windows,则在文件中添加头文件:#include <windows.h>,然后使用Sleep(1000);即可。
5、重绘函数为update();
6、图片的绘制
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QFrame>
#include <QPainter>
#include <QPixmap>
class MyWidget : public QFrame
{
Q_OBJECT
public:
MyWidget(QWidget *parent);
~MyWidget();
private:
void paintEvent(QPaintEvent * event);
private:
QPixmap m_pixmap;
};
#endif // MYWIDGET_H
#include "MyWidget.h"
MyWidget::MyWidget(QWidget *parent)
: QFrame(parent)
{
m_pixmap.load("C:/11111.jpg");
}
MyWidget::~MyWidget()
{
}
void MyWidget::paintEvent(QPaintEvent * event)
{
QPainter painter(this);
int width=this->width();
int height=this->height();
QRect target(0,0,width/2,height/2);
int im_width=m_pixmap.width();
int im_height=m_pixmap.height();
QRect source(0,0,im_width,im_height);
painter.drawPixmap(target,m_pixmap,source);
/*painter.setPen(QPen(QColor(0xff,0,0)));
painter.drawRect(40,40,40,10);*/
}
7、鼠标的移动和图形的绘制
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QFrame>
#include <QPainter>
#include <QMouseEvent>
#include <QVector>
class MyWidget : public QFrame
{
Q_OBJECT
public:
MyWidget(QWidget *parent);
~MyWidget();
private:
void paintEvent(QPaintEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
bool m_pressFlag;
QVector<QPoint> m_point;
};
#endif // MYWIDGET_H
#include "MyWidget.h"
#include <QDebug>
MyWidget::MyWidget(QWidget *parent)
: QFrame(parent)
{
m_pressFlag=false;
}
MyWidget::~MyWidget()
{
}
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QColor red(0xff,0xff,0xff);
QBrush brush(red);
painter.setBrush(brush);
painter.drawRect(0,0,this->width(),this->height());
QPen pen(QColor(0xff,0,0));
if (m_pressFlag)
{
for(int i=0;i<m_point.size()-1;i++)
{
QPoint &p1 =m_point[i];
QPoint &p2 =m_point[i+1];
painter.drawLine(p1,p2);
}
}
}
void MyWidget::mouseDoubleClickEvent(QMouseEvent *event)
{
QWidget::mouseDoubleClickEvent(event);
}
void MyWidget::mouseMoveEvent(QMouseEvent *event)
{
if (m_pressFlag)
{
QPoint pos=event->pos();
qDebug("(%d,%d)",pos.x(),pos.y());
m_point.append(pos);
update();
}
}
void MyWidget::mousePressEvent(QMouseEvent *event)
{
m_pressFlag=true;
m_point.clear();
}
void MyWidget::mouseReleaseEvent(QMouseEvent *event)
{
m_pressFlag=false;
}
8、qt中加载图片
首先创建MyWidget类,此类基于QFrame类
#ifndef MYPICTURE_H
#define MYPICTURE_H
#include <QFrame>
#include <QPixmap>
#include <QPainter>
class MyPicture : public QFrame
{
Q_OBJECT
public:
MyPicture(QWidget *parent);
~MyPicture();
private:
QPixmap m_picture;
private:
void paintEvent(QPaintEvent *event);
};
#endif // MYPICTURE_H
#include "MyPicture.h"
MyPicture::MyPicture(QWidget *parent)
: QFrame(parent)
{
m_picture.load("C:\\1.jpg");
}
MyPicture::~MyPicture()
{
}
void MyPicture::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawPixmap(0,0,this->width(),this->height(),m_picture);
}