大家好,我用Qt写了一个
界面,如下:
window.open('http://www.qtcn.org/bbs/attachment/Mon_1111/59_114673_ba03327e2b5616e.png?24');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >先贴代码:
自定义的绘图类:
#ifndef PAINTAREA_H
#define PAINTAREA_H
#include <QWidget>
#include <QTimer>
#define pi 3.14159 //定义π数值
class PaintArea : public QWidget
{
Q_OBJECT
public: PaintArea();
int Data[350][700];
QRgb value;
int m_min;
int m_max;
int Num;
int g_bkBright;
int temp;
void ReadData();
void RectShow();
void FanShow();
QTimer *timer;
void start();
void pause();
void saveimage();
protected:
void paintEvent(QPaintEvent *);
private:
QImage image;
QImage tempimage;
QRgb backColor;
private slots:
void timerUpDate();
#endif // PAINTAREA_H
//PaintArea.cpp
PaintArea::PaintArea()
{
image = QImage(500,650,QImage::Format_RGB32);
tempimage=QImage(500,650,QImage::Format_RGB32);
backColor = qRgb(255,255,255);
image.fill(backColor); }
void PaintArea::paintEvent(QPaintEvent *)
{ QPainter painter(this);
painter.drawImage(0,0,image);
}
...............................................略
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
ui(new Ui::MainWindow)
{ ui->setupUi(this);
resize(800,650);
area = new PaintArea; //一个类调用另一个类,把指针传给area,用new+类名
//area->show();
setCentralWidget(area);
//将scrollArea加入到主
窗口的中心区 }
运行程序之后是我上的第一个图的效果。
我现在想问的
问题是:我在QtDesiger中布置了其它的控件,但是使用了setCentralWidget(area)之后,其它的空间都被覆盖了。所以我想在主窗口中的一个
widget中绘图,好几天了也没搞定,我想要的效果如下:
由于基础差,最近四五天我把什么提升法,
插件法,splitter。。。。(其实我也不太明白到底怎么用)都用了一遍,实在没办法了,到论坛
求助了。各位看看我应该怎么做?
第二个问题是,做Mainwindow 一定要有setCentralWidget么?