|
本帖最后由 iamzxming 于 2015-3-22 21:54 编辑
木村拓哉 发表于 2015-3-22 21:38
1、paintEvent()这个好像是在程序启动的时候就自动调用的,在其它地方不好手动调用。你要刷新界面的话用 up ...
谢谢前辈,其实我就是想用QPainter在label上绘图,但是不知道怎么弄,看了网上一些帖子,都说可以重载控件的paintEvent()函数来实现。然后就想问怎么重载?
比如我想在 MainWindow上画一条线,
我可以在.h文件里加一个
protected:
void paintEvent(QPaintEvent *);
.cpp文件里加一个
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawLine(QPointF(100, 100), QPointF(100, 200));
}
.h文件
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
protected:
void paintEvent(QPaintEvent *);
};
.cpp
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawLine(QPointF(100, 100), QPointF(100, 200));
}(省略部分代码)
然后就可以在主界面上画条线
|
|