• <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>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿

            static void audio_encode(const char *filename)
            {
                AVCodec *codec;
                AVCodecContext *c = NULL;
                int frame_size, i, j, out_size, outbuf_size;
                FILE *f;
                short *samples;
                float t, tincr;
                uint8_t *outbuf;

                codec = avcodec_find_encoder(CODEC_ID_MP2);
                if(!codec)
                {
                    fprintf(stderr, "codec not found\n");
                    exit(1);
                }

                c = avcodec_alloc_context3(codec);

                c->bit_rate = 64000;
                c->sample_rate = 44100;
                c->channels = 1;
                c->sample_fmt = AV_SAMPLE_FMT_S16;

                if(avcodec_open(c, codec) < 0)
                {
                    fprintf(stderr, "could not open codec\n");
                    exit(1);
                }

                frame_size = c->frame_size;
                samples = malloc(frame_size * 2 * c->channels);
                outbuf_size = 10000;
                outbuf = malloc(outbuf_size);

                f = fopen(filename, "wb");
                if(!f)
                {
                    fprintf(stderr, "could not open %s\n", filename);
                    exit(1);
                }

                /* encode a single tone sound */
                t = 0;
                tincr = 2 * M_PI * 440.0 / c->sample_rate;
                for(i=0;i<200;i++) {
                    for(j=0;j<frame_size;j++) {
                        samples[2*j] = (int)(sin(t) * 10000);
                        samples[2*j+1] = samples[2*j];
                        t += tincr;
                    }
                    /* encode the samples */
                    out_size = avcodec_encode_audio(c, outbuf, outbuf_size, samples);
                    fwrite(outbuf, 1, out_size, f);
                }
                fclose(f);
                free(outbuf);
                free(samples);
                avcodec_close(c);
                av_free(c);
            }
            posted @ 2012-01-10 21:31 ccsdu2009 閱讀(2231) | 評論 (2)編輯 收藏
             
            有時候,有必要當QPushButton為Hover狀態(tài)的時候能發(fā)生消息,以便能執(zhí)行一些動作,當時QPushButton并沒有相應的信號。

            我訂制的QHoverButton如下:
            class QHoverButton : public QPushButton
            {
                Q_OBJECT
            public:
                QHoverButton(QWidget
            * parent = 0);
                QHoverButton(
            const QString &text,QWidget* parent = 0);
                
            ~QHoverButton();
            signals:
                
            void enter();
                
            void denter();
            private:
                
            void enterEvent(QEvent* event);
                
            void leaveEvent(QEvent* event);
            };

            QHoverButton::QHoverButton(QWidget* parent):
            QPushButton(parent)        
            {
            }

            QHoverButton::QHoverButton(
            const QString &text,QWidget* parent):
            QPushButton(text,parent)
            {
            }

            QHoverButton::
            ~QHoverButton()
            {

            }

            void QHoverButton::enterEvent(QEvent* event)
            {
                emit enter();
            }

            void QHoverButton::leaveEvent(QEvent* event)

                emit denter();
            }

            在這里使用QWidget虛函數(shù)enterEvent,leaveEvent來發(fā)送hover消息
            posted @ 2011-12-24 11:12 ccsdu2009 閱讀(781) | 評論 (0)編輯 收藏
             
            具體就是實現(xiàn)函數(shù)contextMenuEvent(QContextMenuEvent* event)
            在其中加入popMenu->addAction(action);  
            為了響應action,則可以鏈接action的click(),trigger()函數(shù)和處理函數(shù)
            另外,有事情右鍵菜單選項需要根據(jù)鼠標所指項顯示,則可以使用
             

                QTableWidgetItem* item = itemAt(mapFromGlobal(QCursor::pos()));
                
            if(item != NULL)
                {

            獲取當前表格項

            需要說的是開始我總是使用setCellWidget設置表格單元,導致itemAt總是返回空值,而實際應該使用的是函數(shù)setItem.
            感覺QTableWidget此類設計有點問題!
            posted @ 2011-12-19 22:33 ccsdu2009 閱讀(4502) | 評論 (0)編輯 收藏
             
            QGroupBox基本如下:
            class Q_GUI_EXPORT QGroupBox : public QWidget
            {
            public:
                
            explicit QGroupBox(QWidget* parent=0);
                
            explicit QGroupBox(const QString &title, QWidget* parent=0);
                
            ~QGroupBox();

                QString title() 
            const;
                
            void setTitle(const QString &title);

                Qt::Alignment alignment() 
            const;
                
            void setAlignment(int alignment);

                QSize minimumSizeHint() 
            const;

                
            bool isFlat() const;
                
            void setFlat(bool flat);
                
            bool isCheckable() const;
                
            void setCheckable(bool checkable);
                
            bool isChecked() const;
            public Q_SLOTS:
                
            void setChecked(bool checked);
            Q_SIGNALS:
                
            void clicked(bool checked = false);
                
            void toggled(bool);
            };

            其中
            setFlat控制顯示外框與否
            setCheckable()設置QGroupBox是否為活動狀態(tài)
            如果可以當前QGroupBox是活動狀態(tài),則點擊QGroupBox則激發(fā)toggled
            posted @ 2011-12-18 20:22 ccsdu2009 閱讀(1119) | 評論 (0)編輯 收藏
             
            有時候單靠使用QT的Layout無法保持,就需要調(diào)整QLayout的參數(shù)了
            QLayout::SetDefaultConstraint0The main widget's minimum size is set to minimumSize(), unless the widget already has a minimum size.
            QLayout::SetFixedSize3The main widget's size is set tosizeHint(); it cannot be resized at all.
            QLayout::SetMinimumSize2The main widget's minimum size is set to minimumSize(); it cannot be smaller.
            QLayout::SetMaximumSize4The main widget's maximum size is set to maximumSize(); it cannot be larger.
            QLayout::SetMinAndMaxSize5The main widget's minimum size is set to minimumSize() and its maximum size is set to maximumSize().
            QLayout::SetNoConstraint41The widget is not constrained.
            QLayout默認的主控件大小就是主控件的大小
            要調(diào)整布局效果可以調(diào)用setSizeConstraint函數(shù)
            如果不想當布局變化的時候改變控件大小就可以設置布局為SetFixedSize
            其余類似
            posted @ 2011-12-17 11:19 ccsdu2009 閱讀(3237) | 評論 (0)編輯 收藏
             
            QTableWidget要設置項標題
            關鍵的二個函數(shù)是
            setColumnCount以及setHorizontalHeaderLabels
            注意其使用程序是
            首先調(diào)用
            setColumnCount
            然后設置表頭標簽鏈表
            setorizontalHeaderLabels
            如果這二個函數(shù)次序
            posted @ 2011-12-11 20:48 ccsdu2009 閱讀(7552) | 評論 (0)編輯 收藏
             
                 摘要: QVariant是一種可以存儲不同類型的數(shù)據(jù)結構,在很多場合這是很有用得為了達到這種目的,可以想象,該對象應該存儲對象的類型信息,數(shù)據(jù)信息以及其他輔助詳細考慮用途,這種對象必須支持對不同對象的存儲,對存儲類型的檢測以及取對象三個功能1.對象的存儲代碼見下:Code highlighting produced by Actipro CodeHighlighter (freeware)http://w...  閱讀全文
            posted @ 2011-12-10 20:51 ccsdu2009 閱讀(4366) | 評論 (0)編輯 收藏
             
            剛使用VC編譯過了QT4.7,具體步驟如下:
            1.下載QT源碼壓縮包:
            http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.zip
            2.解壓壓縮包到D盤下
            3.添加系統(tǒng)變量PATH=D:\qt-everywhere-opensource-src-4.7.4\bin
                               QTDIR=D:\qt-everywhere-opensource-src-4.7.4
            4.cmd進入vc目錄執(zhí)行vcvars32.bat
            5.進入QT目錄執(zhí)行configure
            6.輸入o選擇開源項目
            7.配置完成后執(zhí)行nmake進行編譯
            posted @ 2011-12-10 19:37 ccsdu2009 閱讀(449) | 評論 (0)編輯 收藏
             
            現(xiàn)在Android很熱,很多人都是在linux下編譯Android程序的,但是知道能在Eclipse下開發(fā)Android應用的人不多。
            我說下如何在Eclipse下編譯Android應用
            1.首先在Linux下編譯好Android大版本
            2.進入out/../target/common/obj/java_imminatelibraried目錄,找出如下三個文件夾(core_immiaterlibraeted,framework_immiatelibraied,ext_immiatelibrary)下的classed.jar文件.
            重新命名為core.jar,framwork.jar,ext.jar
            然后復制到開發(fā)機器上
            3.新建Android工程,移除原有的Android包,導入必要的java包,新建jar庫,導入這3個jar包即可使用
            本方法都大部分應用有效
            posted @ 2011-12-06 21:36 ccsdu2009 閱讀(1709) | 評論 (0)編輯 收藏
             
            QRegex提供字符串驗證,匹配,搜索,替換和切割的功能
            一個比較簡單的例子是
            QRegExp exp("-(.*)\(");
            exp.setMinimal(
            true);
            這兒匹配的是以-開頭,以(結束的字符串
            基本的QRegex
            1.isValid()判斷給定表達式是否合法
            2.errorString()檢錯誤和isValid()類似
            3.isEmpty()判斷正則表達式是否為空
            4.caseSensitivity()檢測大小寫敏感
            5.pattern()獲取正則表達式本身
            6.capturedTexts獲取捕獲的所有字符串
            7.cap()獲取捕獲的字符串索引從1開始
            8.numCaptures()返回匹配的字符串個數(shù)
            9.

            indexIn ( const QString & str, int offset = 0, CaretMode caretMode= CaretAtZero ) const

            從字符串給定偏移匹配之
            10.還有一個函數(shù)需要交代的是setMinimal(int minimal)
            該函數(shù)主要作用是開啟或者關閉最小匹配
            舉一個例子:
            "We must be <b>bold</b>, very <b>bold</b>!" and the pattern <b>.*</b>.
            如果設置正則表達式為<b>.*</b>
            如果設置為最大匹配,則捕獲到<b>bold</b>,very <b>bold</b>
            如果設置為正則表達式,
            則第一次匹配到第一個<b>bold</b>
            第二次匹配到第二個<b>bold</b>

            基本的正則表達式如下:
            \r       回車
            \n      換行
            \t      制表
            \\      \本身
            \"      "
            \^    ^
            \$    $
            \s    匹配空白符
            \~   匹配字符串開始
            $     匹配字符串結束
            \b    單詞的開始或者結束
            []    匹配其中的一個字符 比如[abc]匹配a,b或者c [^abc]匹配a,b,c之外的字符 [a-c] 匹配a到c之間的字符
            {n} 匹配出現(xiàn)n次 比如ab{2} 相當于abb ab{1,3}相當于ab,abb,abbb
            {n,}最少出現(xiàn)n次
            ?   出現(xiàn)0,1次 比如ab[cd]?相當于ab,abc,abd
            ++ 最少出現(xiàn)1次
            *   不出現(xiàn)或者出現(xiàn)任意次,比如\^*c匹配 d,^d,^^d等




            posted @ 2011-11-30 19:57 ccsdu2009 閱讀(2759) | 評論 (0)編輯 收藏
            僅列出標題
            共38頁: First 14 15 16 17 18 19 20 21 22 Last 
             
            偷偷做久久久久网站| 亚洲va久久久噜噜噜久久天堂| 国产精品久久久久免费a∨| a高清免费毛片久久| 91精品国产9l久久久久| 色欲综合久久中文字幕网| 国内精品久久久久影院薰衣草| 精品久久久一二三区| 久久久久久免费视频| 精品久久久中文字幕人妻| 亚洲级αV无码毛片久久精品| 思思久久精品在热线热| 亚洲精品国产美女久久久| 久久精品国产亚洲AV高清热 | 久久综合狠狠综合久久| 一极黄色视频久久网站| 久久人人爽人人人人爽AV| 亚洲AV无码久久精品蜜桃| 欧美牲交A欧牲交aⅴ久久| 99久久无码一区人妻a黑| 亚洲国产精品久久久久| 91麻豆精品国产91久久久久久| 久久精品国产99久久久香蕉| 久久无码人妻精品一区二区三区| 欧美亚洲国产精品久久| 国产精品99久久免费观看| 久久WWW免费人成—看片| 久久亚洲熟女cc98cm| 久久国产亚洲精品麻豆| 久久精品国产亚洲Aⅴ蜜臀色欲| 久久人人青草97香蕉| 久久精品国产亚洲AV无码偷窥| 国内精品伊人久久久久网站| 久久午夜福利无码1000合集| 国产国产成人精品久久| 久久青青草原精品国产软件| 日韩人妻无码一区二区三区久久 | 7777久久久国产精品消防器材| 奇米影视7777久久精品| 久久亚洲欧洲国产综合| 久久精品人人槡人妻人人玩AV|