青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

=====================================Widget.h=====================================

#ifndef WIDGET_H

#define WIDGET_H


#include <QWidget>


namespace Ui {

    class Widget;

}


class Widget : public QWidget {

    Q_OBJECT

public:

    Widget(QWidget *parent = 0);

    ~Widget();


protected:

    virtual void changeEvent(QEvent *e);

    virtual bool eventFilter(QObject *watched, QEvent *e);

    void paintOnWidget(QWidget *w);


private:

    Ui::Widget *ui;

};


#endif // WIDGET_H



=====================================Widget.cpp=====================================

#include "Widget.h"

#include "ui_Widget.h"

#include <QtGui/QPainter>


Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {

    ui->setupUi(this);

    ui->widget->installEventFilter(this);

}


Widget::~Widget() {

    delete ui;

}


void Widget::changeEvent(QEvent *e) {

    QWidget::changeEvent(e);

    switch (e->type()) {

    case QEvent::LanguageChange:

        ui->retranslateUi(this);

        break;

    default:

        break;

    }

}


bool Widget::eventFilter(QObject *watched, QEvent *e) {

    if (watched == ui->widget) {

        if (e->type() == QEvent::Paint) {

            paintOnWidget(ui->widget);

            return true;

        }

    }


    return QWidget::eventFilter(watched, e);

}


void Widget::paintOnWidget(QWidget *w) {

    QPainter painter(w);


    QFontMetrics metrics = painter.fontMetrics();

    int textHeight = metrics.ascent() + metrics.descent();


    int leftWidth = metrics.width(tr("9000")) + 5;

    int rightWidth = metrics.width(tr("()"));

    int width = w->size().width() - leftWidth - rightWidth;

    int height = w->size().height() - 3 * textHeight;


    // 繪制外框

    painter.drawRect(0, 0, w->size().width() -1, w->size().height() - 1);

    // 移動坐標系

    //painter.translate(inset * 2, ui->yearWidget->size().height() - inset);

    painter.translate(leftWidth, 1.75 * textHeight + height);


    int totalCount = 9000; // 默認每年收入9000件衣服

    int count = 10;        // 分成10

    float deltaX = width / 12.0f;         // x坐標上每分的寬度

    float deltaY = (float)height / count; // y坐標上每分的寬度



    // 畫橫坐標

    painter.drawLine(0, 0, width, 0);

    for (int i = 1; i <= 12; ++i) {

        QString month = tr("%1").arg(i);

        int stringWidth = metrics.width(month);


        // 繪制坐標刻度

        painter.drawLine(deltaX * i, 0, deltaX * i, 4);


        // 繪制坐標處的月

        int monthX = deltaX * (i - 1) + ((deltaX - stringWidth) / 2);

        painter.drawText(monthX, textHeight, month);

    }


    // 畫縱坐標

    painter.drawLine(0, 0, 0, -height);

    painter.drawText(-metrics.width(tr("()")),

                     -(deltaY * count + textHeight / 2 + metrics.descent()),

                     tr("()"));

    for (int i = 1; i <= count; ++i) {

        QString value = QString("%1").arg(i * totalCount / count);

        int stringWidth = metrics.width(value);


        // 繪制坐標刻度

        painter.drawLine(-4, -i * deltaY, 0, -i * deltaY);


        // 繪制坐標值

        //painter.drawText(-stringWidth - 4, -i * deltaY + stringHeight / 2, value);

        painter.drawText(-stringWidth - 4, -(deltaY * i + textHeight / 2 - metrics.ascent()), value);

    }


    //    // 繪制每個月收到的服飾

    //    painter.setBrush(Qt::BDiagPattern);

    //    for (int i = 0; i < yearList.size(); ++i) {

    //        painter.setPen(Qt::black);

    //        int fineryCount = yearList.at(i); // i + 1個月收到的服飾件數(shù)

    //        int h = fineryCount / (float)totalCount * height;

    //        painter.drawRect(deltaX * i + 2, 0, deltaX - 4, -h);

    //

    //        // 繪制收到的服飾件數(shù)

    //        QString fineryString = QString("%1").arg(fineryCount);

    //        int stringWidth = metrics.width(fineryString);

    //

    //        if (h > height) {

    //            h = height;

    //        }

    //

    //        painter.setPen(Qt::red);

    //        //painter.drawText(deltaX * i + (deltaX - stringWidth) / 2, -(h + metrics.descent()), fineryString);

    //    }

}


posted on 2009-10-31 13:38 逛奔的蝸牛 閱讀(10909) 評論(13)  編輯 收藏 引用 所屬分類: Qt

評論

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像[未登錄] 2010-10-25 14:40 liu
你好
我build出現(xiàn)這個錯誤
/home/liuzhiyu/ta-build-desktop/../ta/Widget.cpp:44: error: invalid use of ‘class Ui::Widget’  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2010-10-25 14:49 逛奔的蝸牛
@liu
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {
ui->setupUi(this);
ui->widget->installEventFilter(this);
}

看這里,需要一個widget的form,因為它是直接用QtCreator拖的。
在這個form里面,又有一個widget:ui->widget->這里就可以看到。
為了方便,就直接這樣做了,關(guān)鍵的信息是使用EventFilter來處理繪制消息  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像[未登錄] 2010-10-26 15:44 liu
我把
ui->setupUi(this);
ui->widget->installEventFilter(this);
改為
ui->setupUi(this);
this->installEventFilter(this);

后面
bool Widget::eventFilter(QObject *watched, QEvent *e) {
if (watched == ui->widget) {
if (e->type() == QEvent::Paint) {
paintOnWidget(ui->widget);
return true;
}
}

return QWidget::eventFilter(watched, e);
}
中的ui->widget也改為this就通過了  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2010-10-27 16:23 lily
你好,
我想將采集回來的數(shù)據(jù)(二維數(shù)組)在QT里將曲線顯示出來,可不可采用你文章里的方法,還是通過在form窗體上同個Drawer類來實現(xiàn)。
謝謝!
剛開始學(xué)QT,霧茫茫的~~~~  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2010-10-27 16:27 逛奔的蝸牛
@lily
此文中的方法,是當時我處理繪制時有多個Widget,要在不同的情況對其進行繪制,所以在要不同的Widget上繪制。

如果你的數(shù)據(jù)只在一個Widget中繪制,就不需要這么麻煩,直接在一個Widget的paint方法中繪制就可以了。當然,這樣做也沒有任何問題。  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2010-10-27 16:46 lily
@逛奔的蝸牛
好的,我再想想看,謝謝你~~~  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像[未登錄] 2010-10-27 22:17 liu
@lily
我的情況和你差不多 也是初學(xué)者 也是顯示數(shù)據(jù) 我的QQ: 977925831
有空加我阿
  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像[未登錄] 2010-10-27 22:32 liu
@逛奔的蝸牛
請問怎樣繪制多個窗口的坐標圖像,本文是一個窗口,多個窗口的實現(xiàn),怎么辦?
我想通過按鈕來切換幾副坐標圖 樓主能不能指點迷津啊?謝謝。。。。  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2011-11-22 19:41 1263
在widget的外部進行繪制帶有坐標軸的圖像  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像[未登錄] 2011-12-08 21:29 jasper
請問問題解決了沒?謝謝!  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像[未登錄] 2012-03-05 18:36 wang
請問加上您注釋掉的那部分代碼后,有個yearList變量是在哪里定義的?  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2014-06-26 20:35 風(fēng)過不知
你的form 是指ui 里面的form layout控件嗎?@逛奔的蝸牛
  回復(fù)  更多評論
  

# re: Qt:在widget的外部進行繪制帶有坐標軸的圖像 2014-06-26 21:24 風(fēng)過不知
@liu
真理!  回復(fù)  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女av网站| 一区二区三区.www| 欧美高清不卡在线| 91久久国产综合久久| 国产精品多人| 欧美高清视频在线| 欧美激情精品久久久久久蜜臀| 欧美多人爱爱视频网站| 欧美精品网站| 欧美午夜欧美| 国产欧美日韩激情| 激情一区二区| 一本一道久久综合狠狠老精东影业| 一本一本久久a久久精品综合妖精| 国产精品99久久久久久久久| 香蕉久久国产| 嫩草影视亚洲| 日韩视频在线播放| 欧美在线高清视频| 欧美精品一区二区在线播放| 国产精品入口66mio| 黄色av日韩| aa国产精品| 久久亚洲国产精品一区二区| 亚洲高清资源| 亚洲人成网站在线观看播放| 亚洲欧美日韩直播| 玖玖玖免费嫩草在线影院一区| 欧美日韩国产欧| 好吊色欧美一区二区三区四区| 亚洲免费电影在线观看| 久久电影一区| 一本色道88久久加勒比精品| 久久亚洲精品网站| 国产精品亚洲第一区在线暖暖韩国| 精品88久久久久88久久久| 一区二区三区视频在线| 久久女同精品一区二区| 一区二区日韩精品| 欧美bbbxxxxx| 国内成人在线| 午夜视频一区二区| 亚洲电影免费在线| 久久久99免费视频| 国产日韩精品一区观看| 亚洲影视九九影院在线观看| 91久久精品国产91性色| 免费在线成人av| 在线看片第一页欧美| 久久av在线看| 亚洲午夜一区二区三区| 欧美日韩国产欧美日美国产精品| 一区二区三区自拍| 久久久久国产一区二区三区| 亚洲一区二区三区中文字幕| 欧美日韩亚洲视频| 日韩一区二区免费高清| 欧美大成色www永久网站婷| 欧美在线视频一区二区| 国产日韩精品视频一区| 久久国产欧美精品| 午夜老司机精品| 蜜桃av噜噜一区| 亚洲国产精品va在线观看黑人| 久久成人18免费网站| 国产亚洲在线| 久久免费视频在线观看| 久久精品色图| 一区二区视频在线观看| 久久综合九色九九| 久久最新视频| 亚洲人成人77777线观看| 欧美成人午夜激情| 欧美99在线视频观看| 亚洲欧洲精品一区二区| 91久久精品www人人做人人爽| 欧美精品久久久久久久免费观看 | 国产亚洲精品久久久久久| 亚洲在线观看视频网站| 亚洲一区二区三区激情| 国产欧美精品在线播放| 久久综合亚洲社区| 蜜臀99久久精品久久久久久软件| 91久久精品国产91性色tv| 91久久亚洲| 国产精品剧情在线亚洲| 久久久久久久91| 麻豆91精品| 亚洲一区二区毛片| 欧美一区二区三区在线| 亚洲黄一区二区三区| 99精品久久久| 狠狠色狠狠色综合系列| 亚洲人人精品| 国产一区激情| 亚洲精品久久久久久一区二区| 国产精品电影在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美成ee人免费视频| 午夜精品福利在线观看| 老司机精品视频一区二区三区| 正在播放欧美视频| 久久精品国产99| 亚洲网站在线播放| 久久亚洲精品一区二区| 性8sex亚洲区入口| 欧美激情视频一区二区三区在线播放| 午夜精品一区二区三区在线视| 久久这里有精品视频| 午夜日本精品| 欧美久久久久久久久久| 久久婷婷国产综合精品青草| 欧美日韩一区二区三| 欧美a一区二区| 国产麻豆一精品一av一免费| 亚洲国产二区| 精品电影一区| 小辣椒精品导航| 99这里只有久久精品视频| 国产精品扒开腿爽爽爽视频 | 伊人春色精品| 亚洲天堂av在线免费观看| 亚洲人成艺术| 久久天堂国产精品| 久久国产精品毛片| 国产精品久久久久秋霞鲁丝| 亚洲精品视频一区| 亚洲激情视频网站| 噜噜噜躁狠狠躁狠狠精品视频| 久久激情婷婷| 国产欧美日韩高清| 亚洲一区二区欧美日韩| 国产精品99久久久久久www| 欧美精品在线免费| 亚洲激情偷拍| 亚洲精品色婷婷福利天堂| 美腿丝袜亚洲色图| 欧美成人亚洲| 亚洲黄色片网站| 男人天堂欧美日韩| 亚洲福利在线观看| 亚洲精品视频在线看| 美日韩精品视频| 欧美大片91| 亚洲精品美女在线| 欧美区日韩区| 亚洲精品社区| 亚洲女女做受ⅹxx高潮| 国产精品福利网站| 亚洲欧美在线观看| 久久深夜福利免费观看| 国产一区av在线| 久久久久九九九| 欧美高清日韩| 中文精品视频| 国产女主播在线一区二区| 性高湖久久久久久久久| 久久亚洲国产精品一区二区| 亚洲国产精品一区二区第四页av| 欧美电影在线观看| 宅男噜噜噜66一区二区| 久久久久久久激情视频| 亚洲第一精品夜夜躁人人爽| 欧美电影专区| 亚洲一区二区三区影院| 久久综合电影| 一区二区三区视频在线 | 欧美激情1区2区3区| 亚洲破处大片| 亚洲欧美一区二区视频| 韩国精品久久久999| 欧美成人免费全部| 亚洲午夜精品久久| 美女啪啪无遮挡免费久久网站| 亚洲美女精品久久| 国产精品综合| 欧美大胆成人| 午夜精品久久久久久久久久久久| 免费看黄裸体一级大秀欧美| 亚洲天堂成人在线观看| 狠狠色综合网站久久久久久久| 欧美激情久久久久久| 亚洲欧美日韩高清| 亚洲欧洲精品一区二区三区不卡 | 欧美激情第二页| 亚洲午夜精品一区二区三区他趣| 久久久久网址| 一区二区三区鲁丝不卡| 国产一级精品aaaaa看| 欧美日韩直播| 免费久久99精品国产| 亚洲综合成人在线| 亚洲精品午夜| 欧美高清在线视频观看不卡| 欧美在线综合| 亚洲欧美日韩精品一区二区| 日韩一级黄色片| 亚洲高清在线| 激情视频一区| 国产在线成人|