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

C++優雅之旅

探索C++

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  15 隨筆 :: 0 文章 :: 20 評論 :: 0 Trackbacks
  本文大部分內容轉自七星重劍的在Qt窗口里用D3D畫轉動的三角形一文,加上點滴個人研究筆記。
  先上個自己的運行結果圖吧:
 

  現在的問題是只有“臟”了才畫,也就是才去調用如下的method;不是三角形沒動,是動了但是沒畫出來,我們看不見。
1 void QD3DWidget::paintEvent(QPaintEvent *)
2 {
3     if (updatesEnabled())
4     {
5         d3dDraw();
6     }
7 }


  用個timer去解決這個問題?

  這老外的帖子對我幫助很大,不搞下面的兩條整個QD3DWidget都看不到:

    Using Direct3D 9 with Qt - flicker problem

   According to the Qt docs, if you want to use GDI or Direct3D on Windows with Qt, you need to:

  1) Override QWidget::paintEngine to return NULL
  2) Call QWidget::setAttribute(Qt::WA_PaintOnScreen, true) 

  完整代碼:
D3D相關代碼

 1 // QD3DWidget.h
 2 
 3 #pragma once
 4 
 5 #include <Qt/qwidget.h>
 6 
 7 class QD3DWidget : public QWidget
 8 {
 9     Q_OBJECT
10 
11 public:
12     QD3DWidget(QWidget* parent = 0);
13    ~QD3DWidget();
14 
15    QPaintEngine* paintEngine() const;
16 
17 protected:
18     virtual void initializeD3D();
19     virtual void paintD3D();
20 
21     void paintEvent(QPaintEvent *);
22 
23     virtual void d3dInit();
24     virtual void d3dDraw();
25 
26     bool initialized() const {return m_bInit;}
27 
28     void MsgBox();
29 private:
30     bool m_bInit;
31 };

 1 // QD3DWidget.cpp
 2 
 3 #include "QtD3DWidget.h"
 4 #include "D3D.h"
 5 #include <qtimer.h>
 6 
 7 void QD3DWidget::MsgBox()
 8 {
 9     QMessageBox mb(this);
10 
11     mb.exec();
12 }
13 
14 QD3DWidget::QD3DWidget(QWidget* parent /* = 0 */) : QWidget(parent), m_bInit(false)
15 {
16     resize(QSize(400300));
17     setAttribute(Qt::WA_PaintOnScreen, true);
18     
19     QTimer *timer = new QTimer(this);
20     connect(timer, SIGNAL(timeout()), this, SLOT(update()));
21     timer->start(20);
22 }
23 
24 QD3DWidget::~QD3DWidget()
25 {
26    
27 }
28 
29 void QD3DWidget::initializeD3D()
30 {
31     InitD3D(winId());
32     InitVB();
33 
34     m_bInit = true;
35 }
36 
37 void QD3DWidget::paintD3D()
38 {
39     Render();
40 }
41 
42 void QD3DWidget::paintEvent(QPaintEvent *)
43 {
44     if (updatesEnabled())
45     {
46         d3dDraw();
47     }
48 }
49 
50 void QD3DWidget::d3dInit()
51 {
52     initializeD3D();
53 }
54 
55 void QD3DWidget::d3dDraw()
56 {
57     if (!initialized())
58     {
59         d3dInit();
60     }
61 
62     paintD3D();
63 }
64 
65 QPaintEngine* QD3DWidget::paintEngine() const
66 {
67     return NULL;
68 }

   紅字部分是根據原作者的文章自己研究后加上去的,現在的代碼已經可以實現窗體中三角型的轉動,關鍵就是利用定時器每隔20ms強制窗體重繪(update()),因為不太熟悉Qt,搞了半天才知道是update這個函數。

   用如下測試代碼就可以得到開頭的結果畫面:
 1 #include "stdafx.h"
 2 #include "QtD3DWidget.h"
 3 #include <qapplication.h>
 4 
 5 int _tmain(int argc, char* argv[])
 6 {
 7     QApplication app(argc, argv);
 8 
 9     QD3DWidget* d3dWidget = new QD3DWidget();
10 
11     d3dWidget->show();
12 
13     return app.exec();
14 }
  
posted on 2009-05-13 06:40 林公子 閱讀(12712) 評論(0)  編輯 收藏 引用 所屬分類: Qt
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品视频在线| 国产精品国产馆在线真实露脸 | 欧美激情在线观看| 久久综合激情| 亚洲私人影院在线观看| 欧美一区二区啪啪| 欧美日韩免费一区| 在线国产亚洲欧美| 欧美一区二区三区四区在线观看地址 | 校园春色国产精品| 久热精品在线视频| 91久久久亚洲精品| 亚洲一区中文字幕在线观看| 国产精品日韩久久久久| 久久裸体视频| 性欧美8khd高清极品| 一本一本久久| 在线亚洲精品| 一区二区冒白浆视频| 亚洲精品永久免费精品| 亚洲日产国产精品| 亚洲激情视频在线播放| 亚洲大胆女人| 亚洲国产色一区| 亚洲精品少妇网址| 午夜亚洲影视| 亚洲蜜桃精久久久久久久| 亚洲欧美文学| 国内偷自视频区视频综合| 一本色道久久综合亚洲精品高清| 亚洲激情图片小说视频| 亚洲午夜在线观看| 久久成人亚洲| 欧美激情偷拍| 国产精品视频大全| 亚洲精品护士| 久久精品盗摄| 国产一区二区电影在线观看 | 亚洲精品资源| 久久精品国产一区二区三区| 欧美日韩国产首页| 悠悠资源网久久精品| 亚洲欧美成人一区二区三区| 欧美第一黄网免费网站| 欧美亚洲综合在线| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲欧美日韩在线综合| 欧美在线免费观看视频| 亚洲激情网站| 久久久99爱| 国产嫩草一区二区三区在线观看| 国产一区二区高清视频| 夜夜嗨av一区二区三区免费区| 久久久噜噜噜| 久久精品理论片| 国产伦精品一区二区三区照片91 | 国产女主播视频一区二区| 欧美国产精品久久| 国产午夜亚洲精品不卡| 91久久夜色精品国产网站| 久久久久久久一区二区| 国产精品视频第一区| 99精品欧美一区二区三区 | 9l国产精品久久久久麻豆| 开心色5月久久精品| 国产日韩精品电影| 午夜久久福利| 亚洲一区在线视频| 国产精品a久久久久| 一区二区三区|亚洲午夜| 亚洲国产欧美久久| 欧美黑人一区二区三区| 亚洲精品欧洲精品| 亚洲久久在线| 国产精品美腿一区在线看| 亚洲性夜色噜噜噜7777| 亚洲综合好骚| 日韩亚洲欧美高清| 国产精品系列在线播放| 久久精品视频播放| 久久精品日韩欧美| 亚洲精品免费网站| 夜夜嗨av一区二区三区四区| 国产精品成人一区| 久久精品视频在线播放| 久久免费黄色| 99在线观看免费视频精品观看| 亚洲精品在线看| 国产欧美一区二区三区另类精品 | 久久久久久久综合日本| 久久久久久成人| 日韩视频三区| 亚洲欧美韩国| 亚洲国产美女| 亚洲天堂av在线免费| 国内精品久久久久伊人av| 亚洲国产另类 国产精品国产免费| 欧美午夜在线视频| 免费成人激情视频| 欧美少妇一区二区| 老司机aⅴ在线精品导航| 欧美日韩高清区| 久久免费一区| 国产精品va在线播放| 老司机一区二区| 国产精品久久久| 亚洲国产日韩在线一区模特| 国产色综合久久| av成人天堂| 亚洲人被黑人高潮完整版| 亚洲欧美日韩高清| 中文久久乱码一区二区| 久久久人成影片一区二区三区观看 | 99re热这里只有精品视频| 欧美一区二区三区免费看| 日韩一级不卡| 免费观看成人鲁鲁鲁鲁鲁视频 | 国产精品男gay被猛男狂揉视频| 美女爽到呻吟久久久久| 国产精品亚洲网站| 一区二区三区不卡视频在线观看| 亚洲国产成人av| 先锋资源久久| 性欧美大战久久久久久久免费观看| 牛夜精品久久久久久久99黑人| 久久riav二区三区| 国产精品久久久久久久久果冻传媒| 亚洲高清久久| 亚洲国产美女| 欧美国产免费| 亚洲黄色成人网| 91久久国产综合久久| 久久久美女艺术照精彩视频福利播放| 国产精品狠色婷| 亚洲视频网在线直播| 亚洲婷婷免费| 国产精品二区在线观看| 一本大道久久a久久精品综合 | 欧美大片在线看| 亚洲国产精品va在线看黑人| 久久国产精品网站| 久久久久一区| 在线播放日韩| 久久综合久久综合这里只有精品| 你懂的成人av| 亚洲精品美女91| 欧美日韩亚洲视频一区| 99精品99久久久久久宅男| 亚洲一区精品电影| 国产精品毛片大码女人| 午夜精品在线视频| 免费观看30秒视频久久| 亚洲激情偷拍| 欧美午夜精品理论片a级大开眼界| 亚洲一区二区视频| 久久天堂成人| 亚洲精品永久免费| 欧美日韩精品中文字幕| 夜夜精品视频一区二区| 香蕉久久久久久久av网站| 国产一区美女| 欧美激情一区二区三区成人| aⅴ色国产欧美| 久久激情久久| 亚洲精品视频一区二区三区| 欧美视频在线不卡| 久久大香伊蕉在人线观看热2| 欧美大片免费观看在线观看网站推荐| 99国产成+人+综合+亚洲欧美| 国产精品美女黄网| 久久综合导航| 亚洲影视在线| 最新中文字幕一区二区三区| 亚洲女同精品视频| 亚洲国产精品第一区二区| 欧美日韩免费在线视频| 欧美一区视频| 日韩视频一区二区在线观看| 欧美一级久久久| 一本色道久久综合精品竹菊| 国产日韩亚洲| 欧美日韩视频第一区| 久久久久在线| 亚洲中字黄色| 亚洲激情在线| 久久亚洲综合网| 亚洲欧美在线网| 亚洲美女毛片| 玉米视频成人免费看| 国产精品九色蝌蚪自拍| 欧美a一区二区| 久久狠狠久久综合桃花| 一区二区三区四区五区视频| 欧美激情视频一区二区三区不卡| 性欧美激情精品| 亚洲综合精品一区二区| 亚洲人成高清| 亚洲日本在线观看| 在线看成人片| 伊人久久婷婷色综合98网|