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

Cpper
C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿

這個其實是一個線程安全的int mapper

void alThunkInit(void);
void alThunkExit(void);
ALuint alThunkAddEntry(ALvoid 
* ptr);
void alThunkRemoveEntry(ALuint index);
ALvoid 
*alThunkLookupEntry(ALuint index);


typedef 
struct {
    ALvoid 
*ptr;
    ALboolean InUse;
} ThunkEntry;

static ThunkEntry *g_ThunkArray;
static ALuint      g_ThunkArraySize;

static CRITICAL_SECTION g_ThunkLock;

void alThunkInit(void)
{
    InitializeCriticalSection(
&g_ThunkLock);
    g_ThunkArraySize 
= 1;
    g_ThunkArray 
= calloc(1, g_ThunkArraySize * sizeof(ThunkEntry));
}

void alThunkExit(void)
{
    free(g_ThunkArray);
    g_ThunkArray 
= NULL;
    g_ThunkArraySize 
= 0;
    DeleteCriticalSection(
&g_ThunkLock);
}

ALuint alThunkAddEntry(ALvoid 
*ptr)
{
    ALuint index;

    EnterCriticalSection(
&g_ThunkLock);

    
for(index = 0;index < g_ThunkArraySize;index++)
    {
        
if(g_ThunkArray[index].InUse == AL_FALSE)
            
break;
    }

    
if(index == g_ThunkArraySize)
    {
        ThunkEntry 
*NewList;

        NewList 
= realloc(g_ThunkArray, g_ThunkArraySize*2 * sizeof(ThunkEntry));
        
if(!NewList)
        {
            LeaveCriticalSection(
&g_ThunkLock);
            
return 0;
        }
        memset(
&NewList[g_ThunkArraySize], 0, g_ThunkArraySize*sizeof(ThunkEntry));
        g_ThunkArraySize 
*= 2;
        g_ThunkArray 
= NewList;
    }

    g_ThunkArray[index].ptr 
= ptr;
    g_ThunkArray[index].InUse 
= AL_TRUE;

    LeaveCriticalSection(
&g_ThunkLock);

    
return index+1;
}

void alThunkRemoveEntry(ALuint index)
{
    EnterCriticalSection(
&g_ThunkLock);

    
if(index > 0 && index <= g_ThunkArraySize)
        g_ThunkArray[index
-1].InUse = AL_FALSE;

    LeaveCriticalSection(
&g_ThunkLock);
}

ALvoid 
*alThunkLookupEntry(ALuint index)
{
    ALvoid 
*ptr = NULL;

    EnterCriticalSection(
&g_ThunkLock);

    
if(index > 0 && index <= g_ThunkArraySize)
        ptr 
= g_ThunkArray[index-1].ptr;

    LeaveCriticalSection(
&g_ThunkLock);

    
return ptr;
}
用途比較廣
posted @ 2015-06-29 13:24 ccsdu2009 閱讀(327) | 評論 (0)編輯 收藏
 
class Widget : public QWidget
{
    Q_OBJECT
public:
    
explicit Widget(QWidget *parent = 0);
    
~Widget();
private:
    
void resizeEvent(QResizeEvent* event);
private:
    QStateMachine
* mMachine;
    QSignalTransition
* mTransition;
    QState
* mMaxState;
    QState
* mMinState;
    QPushButton
* mButton;
    
bool mResized;
};

Widget::Widget(QWidget *parent):
QWidget(parent)
{
    mResized 
= false;
    resize(
640,480);
}

Widget::
~Widget()
{
}

void Widget::resizeEvent(QResizeEvent* event)
{
    
if(size().height() == 0)
    {
        close();
        
return;
    }
    
if(mResized)
        
return;

    mButton 
= new QPushButton(this);
    mButton
->setText("Click");

    mResized 
= true;
    QPoint p 
= pos();
    QSize s 
= size();

    mMachine 
= new QStateMachine(this);
    mMaxState 
= new QState(mMachine);
    mMaxState
->assignProperty(this,"geometry",QRect(p,s));
    
//connect(mMachine,SIGNAL(finished()),this,SLOT(callClose()));
    
    mMinState 
= new QState(mMachine);
    mMinState
->assignProperty(this,"geometry",QRect(p.x(),p.y()+s.height()/2,s.width(),0));
    
//connect(mMinState,SIGNAL(entered()),this,SLOT(callClose()));
    mMachine->setInitialState(mMaxState);

    QPropertyAnimation
* ani1 = new QPropertyAnimation(this,"geometry");
    ani1
->setDuration(300);
    ani1
->setEasingCurve(QEasingCurve::Linear);

    QSignalTransition
* transition = mMaxState->addTransition(mButton,SIGNAL(clicked()),mMinState);
    transition
->addAnimation(ani1);

    mMachine
->start();
}


不過有2個問題,當動畫結束的時候,和這句相關
connect(mMinState,SIGNAL(entered()),this,SLOT(callClose()));
可以退出程序
但是動畫沒執行 有空看下
setSizeConstraint(QLayout::SetNoConstraint);
posted @ 2015-01-02 21:23 ccsdu2009 閱讀(3419) | 評論 (0)編輯 收藏
 
    QSignalMapper* mapper = new QSignalMapper(this);
    for(int i=0;i<4;i++)
    {
        QRadioButton
* button = new QRadioButton();
        
if(i == 0)
            button
->setChecked(true);
        button
->setText(items[i+1]);
        buttonlayout
->addWidget(button);
        
        mapper
->setMapping(button,i);
        connect(button,SIGNAL(clicked()),mapper,SLOT(map()));
    }

    connect(mapper,SIGNAL(mapped(
int)),this,SLOT(onClick(int)));
posted @ 2014-12-14 18:47 ccsdu2009 閱讀(4421) | 評論 (0)編輯 收藏
 
    QFont font;
    font.setPointSize(
18);
    painter.setFont(font);
    QFontMetrics fm 
= painter.fontMetrics();

    QString list[] 
= {"A","B","C","D","E"};
    
for(int i=0;i<5;i++)
    {
        
int width = fm.width(list[i]);
        
int height = fm.ascent()+fm.descent();
        
        QPair
<int,int> pos(mDatas[i]);
        QRectF rect(pos.first
-width/2,pos.second-height/2,width,height);
        painter.drawText(rect,list[i]);
    }
posted @ 2014-12-14 11:44 ccsdu2009 閱讀(7924) | 評論 (1)編輯 收藏
 
class painter : public QWidget
{
    Q_OBJECT
public:
    painter(QWidget 
*parent = 0, Qt::WFlags flags = 0);
    
~painter();
private:
    
void paintEvent(QPaintEvent* e);
    
void clcPos(int x,int y,int r);
    
void renderCircle(QPainter& painter,int x,int y,int r);
    
void renderLine(int p1,int p2);
    
void mousePressEvent(QMouseEvent*);
    
void mouseReleaseEvent(QMouseEvent*);
    
int  length(int x1,int y1,int x2,int y2);
    
int  min(int x,int y,int& m);
private:
    
bool mMousePress;
    QVector
<QPair<int,int> > mPosList;
};

#endif

painter::painter(QWidget* parent,Qt::WFlags flags):
QWidget(parent,flags)
{
    setGeometry(100,100,640,480);
    setBackgroundRole(QPalette::Base);
    setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    mMousePress = false;
}

painter::~painter()
{
}

void painter::paintEvent(QPaintEvent* e)
{
    mPosList.clear();

    int w = width();
    int h = height();

    float p = 3.14159265f;

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing,true);

    for(int i=0;i<5;i++)
    {
        float delta = p*0.4*i - .5*p;
        
        float cos = cosf(delta)*148;
        float sin = sinf(delta)*148;
        int x = w/2 + cos;
        int y = h/2 + sin;
        mPosList.push_back(QPair<int,int>(x,y));
    }

    renderLine(0,2);
    renderLine(1,3);
    renderLine(2,4);
    renderLine(3,0);
    renderLine(4,1);

    for(int i=0;i<5;i++)
    {
        QPair<int,int> pos = mPosList[i];
        renderCircle(painter,pos.first,pos.second,48);
    }
}

void painter::clcPos(int x,int y,int r)
{
    mPosList.push_back(QPair<int,int>(x,y));
}

void painter::renderCircle(QPainter& painter0,int x,int y,int r)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing,true);

    painter.setPen(QPen(Qt::blue,2,Qt::SolidLine));  
    painter.setBrush(QBrush(Qt::green,Qt::SolidPattern));
    painter.drawRoundRect(x-r/2,y-r/2,r,r,99,99);
}

void painter::mousePressEvent(QMouseEvent* e)
{
    if(e->button() == Qt::LeftButton)
    {
        mMousePress = true;
        int x = e->x();
        int y = e->y();
        const int off2 = 48*48;
        
        int m = 9999;
        int offset = min(x,y,m);
        if(m < 36*36)
            std::cout<<"here:"<<offset<<std::endl;
    }
}

int painter::min(int x,int y,int& m)
{
    int offset = 0;
    for(int i=0;i<5;i++)
    {
        QPair<int,int> pos(mPosList[i]);
        int len = length(x,y,pos.first,pos.second);
        if(len < m)
        {
            m = len;
            offset = i;
        }
    }
    return offset;
}

void painter::mouseReleaseEvent(QMouseEvent* e)
{
    mMousePress = false;
}

int painter::length(int x1,int y1,int x2,int y2)
{
    return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
}

void painter::renderLine(int p1,int p2)
{
    QPair<int,int> pos1 = mPosList[p1];
    QPair<int,int> pos2 = mPosList[p2];

    float k = pos2.second - pos1.second;
    k /= (float)(pos2.first - pos1.first);
    std::cout<<k<<std::endl;

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing,true);
    painter.setPen(QPen(Qt::blue,2,Qt::DotLine));
    painter.drawLine(pos1.first,pos1.second,pos2.first,pos2.second);
}

posted @ 2014-12-11 22:07 ccsdu2009 閱讀(2085) | 評論 (0)編輯 收藏
 
class scrollTest : public QWidget
{
    Q_OBJECT
public:
    scrollTest(QWidget 
*parent = 0, Qt::WFlags flags = 0);
    
~scrollTest();
private:
    
void createWidget();
    QWidget
* createGroupBox(const QString& title,int n);
};

scrollTest::scrollTest(QWidget
* parent,Qt::WFlags flags):
QWidget(parent,flags)
{
    createWidget();
}

scrollTest::
~scrollTest()
{
}

void scrollTest::createWidget()
{
    resize(
300,360);

    QGridLayout
* gridLayout = new QGridLayout(this);
    QScrollArea
* scrollArea = new QScrollArea(this);
    
//scrollArea->setWidgetResizable(false);
    
//scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
    
    QWidget
* scrollAreaWidgetContents = new QWidget();
    
//scrollAreaWidgetContents->setGeometry(QRect(0, 0, 380, 251));
    scrollArea->setWidget(scrollAreaWidgetContents);

    gridLayout
->addWidget(scrollArea, 0012);

    QSpacerItem
* horizontalSpacer = new QSpacerItem(298,20,QSizePolicy::Expanding,QSizePolicy::Minimum);
    gridLayout
->addItem(horizontalSpacer, 1011);

    QPushButton
* pushButton = new QPushButton(this);
    pushButton
->setText("OK");
    gridLayout
->addWidget(pushButton, 1111);

    QWidget
* content = new QWidget();
    content
->setMinimumHeight(280);
    
//content->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed);
    
    QVBoxLayout
* vlayout = new QVBoxLayout(content);
    
//scrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    vlayout->addWidget(createGroupBox("box1",3));
    vlayout
->addWidget(createGroupBox("box2",5));
    vlayout
->addStretch(1);

    scrollArea
->setWidget(content);
    
//scrollArea->setFixedHeight(420);
}

QWidget
* scrollTest::createGroupBox(const QString& title,int n)
{
    QGroupBox
* box = new QGroupBox(title);
    QVBoxLayout
* boxlayout = new QVBoxLayout(box);
    
for(int i=0;i<n;i++)
        boxlayout
->addWidget(new QRadioButton(QString("%1").arg(i)));

    
return box;
}
posted @ 2014-12-04 13:54 ccsdu2009 閱讀(10988) | 評論 (1)編輯 收藏
 
網上看到的例子都有點問題
上一個我測試過的例子:
#include <qtest.h>
#include 
<QObject>

class shopTest : public QObject
{
    Q_OBJECT
private slots:
    
void test();
private:
    
void test_discount();
    
void test_item();
    
void te函數st_coupon();
    
void test_date();
};
經過測試 slots簇只有第一個函數會被執行到。
void shopTest::test()
{
}

void shopTest::test_discount()
{
}

void shopTest::test_item()
{
}

void shopTest::test_coupon()
{
   ..
}


void shopTest::test_date()
{
  ..
}

QTEST_MAIN(shopTest)
posted @ 2014-11-20 20:53 ccsdu2009 閱讀(2001) | 評論 (0)編輯 收藏
 
解決方案:如果從文本載入的話,確定文本為utf8編碼,然后調用
QString text = QString::fromUtf8(file.readAll());即可
posted @ 2014-11-09 19:10 ccsdu2009 閱讀(2032) | 評論 (0)編輯 收藏
 
一直想做個類似matlab的軟件,支持矩陣運算,線代,微積分求解等功能
大家有啥好的建議沒?

去年業余主要開發了GAudio
今年開發了華佗中藥大師業余版本,馬上就要出入門版本咯

一直想靠寫軟件發財
posted @ 2014-06-09 21:13 ccsdu2009 閱讀(2124) | 評論 (2)編輯 收藏
 
基本用法如下:
    foreach(agentiaItem* item,mTree)
    {
        QTreeWidgetItem
* parent = new QTreeWidgetItem(QStringList(item->getItemName()));  
        tree
->addTopLevelItem(parent); 

        QStringList list 
= item->getItemList();
        
foreach(QString item,list)
        {
            QTreeWidgetItem
* child = new QTreeWidgetItem(QStringList(item));  
            parent
->addChild(child);  
        }
    }
不過構造QTreeWidgetItem的時候,不太理解為什么要使用QStringList而不是QString?
posted @ 2014-04-20 17:22 ccsdu2009 閱讀(1100) | 評論 (0)編輯 收藏
僅列出標題
共38頁: First 7 8 9 10 11 12 13 14 15 Last 
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 亚洲欧洲在线观看| 亚洲精品乱码久久久久| 99精品视频一区| 国产精品99久久久久久www| 一区二区三区视频在线看| 亚洲综合色自拍一区| 午夜精品久久久久久久99水蜜桃| 亚洲午夜精品网| 久久国产一区二区| 欧美激情一区二区三区在线视频| 欧美日本韩国| 国产亚洲精品久久久久久| 亚洲国产美女精品久久久久∴| 亚洲日本激情| 午夜精品网站| 亚洲国产精品va在线看黑人动漫 | 国产美女精品在线| 国产在线视频不卡二| 亚洲狼人精品一区二区三区| 欧美一级理论性理论a| 欧美激情亚洲自拍| 亚洲午夜国产成人av电影男同| 久久国产精品色婷婷| 欧美日产国产成人免费图片| 国产一区二区三区四区五区美女 | 亚洲专区在线| 久久综合给合久久狠狠狠97色69| 亚洲第一色在线| 先锋影音一区二区三区| 欧美国产在线观看| 国模精品娜娜一二三区| 亚洲影院在线| 最新日韩在线视频| 久久久欧美精品| 国产日韩欧美麻豆| 亚洲一区在线观看免费观看电影高清| 久久国产精品久久国产精品| 亚洲人久久久| 狼人社综合社区| 在线观看成人av| 久久激情视频久久| 亚洲一区二区三区四区五区午夜| 欧美成人免费在线| 亚洲二区视频| 鲁鲁狠狠狠7777一区二区| 午夜精品免费视频| 国产精品捆绑调教| 亚洲无玛一区| 日韩亚洲国产欧美| 欧美人与禽猛交乱配| 亚洲免费久久| 亚洲欧洲日产国产网站| 美女久久一区| 亚洲国产精品久久精品怡红院| 久久久欧美一区二区| 亚洲欧美日韩精品久久久| 国产精品99一区| 午夜精品国产| 亚洲砖区区免费| 欧美成人乱码一区二区三区| 欧美韩国在线| 久久天堂精品| 亚洲国产欧美在线人成| 欧美国产日韩二区| 免费在线成人av| 亚洲九九九在线观看| 日韩亚洲欧美一区二区三区| 欧美日韩一区在线观看| 亚洲欧美美女| 久久国产精品久久精品国产| 亚洲国产精品一区二区三区| 亚洲国产精品欧美一二99| 欧美精品 日韩| 在线性视频日韩欧美| 亚洲一区久久久| 影音先锋在线一区| 亚洲国产裸拍裸体视频在线观看乱了 | 一本色道久久综合一区| 国产精品欧美久久久久无广告| 欧美一级视频免费在线观看| 欧美在线一级va免费观看| 极品av少妇一区二区| 亚洲国产一区二区精品专区| 欧美午夜精品久久久久久孕妇 | 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 久久精品国产69国产精品亚洲| 午夜精品电影| 亚洲久久一区二区| 亚洲欧美日韩综合| 亚洲人www| 亚洲一区视频在线| 黄色国产精品| 9i看片成人免费高清| 国产亚洲欧美在线| 日韩亚洲一区在线播放| 国内精品久久久久久影视8| 亚洲国产精品成人一区二区| 国产精品久久久久久久久免费| 久久综合久久综合这里只有精品 | 国产一区二区三区黄| 亚洲国产99精品国自产| 国产农村妇女精品| 亚洲精品一区在线观看香蕉| 国产美女诱惑一区二区| 亚洲精品在线观| 亚洲福利视频一区二区| 亚洲欧洲av一区二区三区久久| 亚洲人成网站在线观看播放| 欧美亚洲日本国产| 亚洲一区999| 欧美国产91| 欧美色播在线播放| 亚洲国产91色在线| 午夜精品久久一牛影视| 亚洲午夜三级在线| 欧美成人一品| 久久久另类综合| 国产午夜精品全部视频在线播放| 亚洲毛片在线| 日韩亚洲综合在线| 久久综合九色综合欧美狠狠| 久久精品欧美日韩精品| 国产精品综合| 亚洲一区久久久| 亚洲色图综合久久| 欧美成人a∨高清免费观看| 久久亚洲综合色| 国产热re99久久6国产精品| 中文在线不卡| 亚洲综合另类| 国产精品一区二区三区四区| 一区二区三区日韩精品视频| 亚洲一区二区三区777| 欧美日韩亚洲高清| 一个色综合av| 亚洲欧美久久| 国产欧美亚洲视频| 欧美一区二区三区四区高清| 欧美尤物巨大精品爽| 国产日韩欧美制服另类| 久久经典综合| 美女诱惑一区| 亚洲人成啪啪网站| 欧美日韩视频在线一区二区观看视频 | 一本色道久久综合亚洲精品小说 | 久久精品中文字幕免费mv| 国产精品自在欧美一区| 久久99伊人| 亚洲成色最大综合在线| 亚洲美女啪啪| 国产精品久久国产精麻豆99网站| 亚洲少妇中出一区| 久久久精品一品道一区| 1024国产精品| 欧美日韩另类综合| 亚洲私人影院| 久久国产精品一区二区三区| 国产一区久久久| 欧美91大片| 99精品热6080yy久久| 欧美一区激情| 亚洲精品黄色| 国产精品一区二区视频| 美女啪啪无遮挡免费久久网站| 亚洲人午夜精品| 欧美一区二区三区在线| 红桃视频国产一区| 欧美成人亚洲成人| 亚洲欧美激情一区| 亚洲国产成人午夜在线一区| 亚洲香蕉伊综合在人在线视看| 午夜一级久久| 亚洲精品久久久久久久久久久久| 欧美啪啪一区| 欧美一区二区视频网站| 欧美激情国产日韩| 欧美一区2区三区4区公司二百| 在线成人激情视频| 欧美日韩国产91| 久久久精彩视频| 99精品国产福利在线观看免费| 久久精品国产综合| 中文无字幕一区二区三区| 亚洲福利在线观看| 国产人成精品一区二区三| 欧美激情亚洲一区| 欧美淫片网站| 一区二区三区四区蜜桃| 欧美黄色成人网| 欧美在线网站| 性久久久久久久久久久久| 亚洲精品国产精品乱码不99按摩| 国产一区观看| 国产在线观看91精品一区| 国产精品美女久久久免费| 欧美精品在线网站|