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

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

就不費話了,直接點
來一個我做的插件例子

//! 插件基類
class PluginAddon : public QObject
{
 Q_OBJECT
public:
 
PluginAddon
(){}
 virtual ~
PluginAddon
(){}
public:
  ...
signals:
 void notify(const Target& t); 
};
Q_DECLARE_INTERFACE(
PluginAddon
,"ooo/1.0.0")

具體插件
class cPluginon : public PluginAddon
{
 Q_OBJECT
 // 將該接口注冊到Qt的meta-object system
 Q_INTERFACES(PluginAddon)
public:
  ...
};

.cpp

Q_EXPORT_PLUGIN2(cplug_Plugin,cPluginon)
這個宏所在頭文件是:
#include <QtPlugin>

至于插件的使用.
  loader = new QPluginLoader("dongrays_Plugin.dll");
 QObject* instance = loader->instance();
 if(instance)
 {
 interface = qobject_cast<Addon*>(instance);
 connect(interface,SIGNAL(notify(target)),this,SLOT(getInfo(target)));
 }

談過connect照樣可以再插件之前傳送數據

posted @ 2011-11-15 21:47 ccsdu2009 閱讀(537) | 評論 (0)編輯 收藏
 
1,軟件界面如圖:

2.代碼如下:
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget 
*parent = 0);
    
~Widget();
public slots:
    
void query(QNetworkReply* reply);
public slots:
    
void click();
private:
    QVBoxLayout
* layout;
    QLineEdit
*   link;
    QPushButton
* button;
    QTextEdit
*   edit;
    QNetworkAccessManager
* mgr;
};

#include <QtNetwork/QNetworkReply>
#include 
"widget.h"

Widget::Widget(QWidget 
*parent):QWidget(parent)
{
    layout 
= new QVBoxLayout;
    
this->setLayout(layout);
    link 
= new QLineEdit("http://qt.nokia.com");
    layout
->addWidget(link);
    button 
= new QPushButton("Check");
    layout
->addWidget(button);
    edit 
= new QTextEdit;
    layout
->addWidget(edit);
    mgr 
= new QNetworkAccessManager(this);
    connect(mgr,SIGNAL(finished(QNetworkReply
*)),this, SLOT(query(QNetworkReply*)));
    connect(button,SIGNAL(clicked()),
this,SLOT(click()));
}

Widget::
~Widget()
{
}

void Widget::query(QNetworkReply* reply)
{
    QString buffer 
= reply->readAll();
    edit
->setText(buffer);
}

void Widget::click()
{
    QString uri 
= link->text();
    mgr
->get(QNetworkRequest(QUrl(uri)));
}

需要說明的是Qt是使用異步的方式下載網頁的

Pro文件
QT += core gui network
posted @ 2011-11-12 20:13 ccsdu2009 閱讀(2623) | 評論 (1)編輯 收藏
 
1.寫二進制文件
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDataStream>
#include <iostream>
int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QFile file("file.dat");
 if(!file.open(QIODevice::WriteOnly))
 {
 std::cerr<<qPrintable(file.errorString())<<std::endl;
 return -1;
 }
 QDataStream stream(&file);
 stream.setVersion(9);
 QString id("ID:");
 quint32 num(quint32(0x123456));
 stream << id<< num;
 file.close();
 return a.exec();
}
2.類似讀文件則是:
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDataStream>
#include <iostream>
int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QFile file("file.dat");
 if(!file.open(QIODevice::ReadOnly))
 {
 std::cerr<<qPrintable(file.errorString())<<std::endl;
 return -1;
 }
 QDataStream stream(&file);
 stream.setVersion(9);
 QString id; 
 quint32 num; 
 stream >> id >> num;
 std::cout<<id.toStdString()<<" "<<num<<std::endl;
 file.close();
 return a.exec();
}
感覺比較好的是直接可以讀寫字符串而不需要關心字符串長度 這個比較好

3.寫文本文件
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QTextStream>
#include <iostream>
int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QFile file("output.txt");
 if(!file.open(QIODevice::WriteOnly))
 {
 std::cerr<<qPrintable(file.errorString())<<std::endl;
 return -1;
 }
 QTextStream stream(&file);
 QString id("Eric Home.");
 quint32 num(123456);
 stream << id << num;
 file.close();
 return a.exec();
}

4.讀文本文件
則可以通過設置編碼方式 之后一次性讀入或者以一個字符的模式讀入
posted @ 2011-09-27 22:15 ccsdu2009 閱讀(975) | 評論 (0)編輯 收藏
 
1.
#include <QtCore/QCoreApplication>
#include <QCryptographicHash>
#include <iostream>
int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QString pwd="abcdef";
 QString md5;
 QByteArray ba,bb;
 QCryptographicHash md(QCryptographicHash::Md5);
 ba.append(pwd);
 md.addData(ba);
 bb = md.result();
 md5.append(bb.toHex());
 std::cout<<md5.toStdString()<<std::endl;
 return a.exec();
}

2.
#include <QtCore/QCoreApplication>
#include <QCryptographicHash>
#include <iostream>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString md5;
    QString pwd="abcdef";
    QByteArray bb;
    bb = QCryptographicHash::hash(pwd.toAscii(),QCryptographicHash::Md5 );
    md5.append(bb.toHex());
    std::cout<<md5.toStdString()<<std::endl;
    return a.exec();
}

posted @ 2011-09-26 22:28 ccsdu2009 閱讀(3357) | 評論 (0)編輯 收藏
 
基本上所有的GUI都不允許在線程中操作GUI
QT也是一樣

那么在QT中如何操作呢?
舉一個例子具體如下:

GUI中
connect(thread,SIGNAL(notify(int)),this,SLOT(updateProgress(int)));

void MainWindow::updateProgress(int value)
{
 progressbar->setValue(value);
}

Thread中
signals:
   void notify(int);
Thread run中
     emit notify(percent);

很犀利吧

posted @ 2011-09-25 12:23 ccsdu2009 閱讀(879) | 評論 (0)編輯 收藏
 
一個簡單的代碼如下:
#include <QtGui/QApplication>
#include <QtGui>
#include <math.h>
int main(int argc, char *argv[])
{
 QApplication a(argc, argv);
 QGraphicsItem *ball = new QGraphicsEllipseItem(0,0,20,40);
 QTimeLine *timer = new QTimeLine(15000);
 timer->setFrameRange(0,100);
 QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
 animation->setItem(ball);
 animation->setTimeLine(timer);
 for(int i = 0; i < 600; ++i)
 animation->setPosAt(i / 600.0, QPointF(i, i));
 QGraphicsScene *scene = new QGraphicsScene();
 scene->setBackgroundBrush(QBrush(Qt::blue));
 scene->setSceneRect(0,0,250,250);
 scene->addItem(ball);
 QGraphicsView *view = new QGraphicsView(scene);
 view->setBackgroundBrush(QBrush(Qt::red));
 view->show();
 timer->start();
 return a.exec();
}

另外一個例子如下:
#ifndef TIMELINE_H
#define TIMELINE_H
#include 
<QtGui/QWidget>
#include 
<QVBoxLayout>
#include 
<QTimeLine>
#include 
<QProgressBar>
#include 
<QPushButton>

class timeline : public QWidget
{
    Q_OBJECT
public:
    timeline(QWidget 
*parent = 0);
    
~timeline();
private:
    QPushButton 
*pushButton;
    QTimeLine 
*timeLine;
    QProgressBar 
*progressBar;
    QVBoxLayout 
*layout;
};

#endif // TIMELINE_H

#include 
"timeline.h"

timeline::timeline(QWidget 
*parent):QWidget(parent)
{
    layout
= new QVBoxLayout(this);
    progressBar 
= new QProgressBar(this);
    progressBar
->setRange(0100);

    
// Construct a 5-second timeline with a frame range of 0 - 100
    timeLine = new QTimeLine(5000this);
    timeLine
->setFrameRange(0100);
    connect(timeLine, SIGNAL(frameChanged(
int)), progressBar, SLOT(setValue(int)));

    
// Clicking the push button will start the progress bar animation
    pushButton = new QPushButton(tr("Start animation"), this);
    connect(pushButton, SIGNAL(clicked()), timeLine, SLOT(start()));
    layout
->addWidget(progressBar);
    layout
->addWidget(pushButton);
    setLayout(layout);
}

timeline::
~timeline()
{
   
// No need to delete any QObject that got proper parent pointer.
}

簡單的說 QTimeLine就是一個帶有線程的對象,通過設置持續時間和幀數來控制動畫
posted @ 2011-09-07 20:26 ccsdu2009 閱讀(4100) | 評論 (0)編輯 收藏
 
1.QHeaderView
設置表頭是否充滿整個QTableView,默認為false
setStretchLastSection(true);
2.給QtableView增加多選框
QStandardItem->
setCheckState(Qt::Unchecked);

posted @ 2011-09-05 16:37 ccsdu2009 閱讀(1092) | 評論 (0)編輯 收藏
 
使用QT TableView
感覺QTableView還是蠻復雜的
QTableView是顯示表格狀的視圖

其經常使用的函數有
1.顯示格子 setShowGrid(false);
2.由內容調整列 resizeColumnsToContents();
3.獲取垂直表頭 verticalHeader
();
         當然還有水平表頭
4.設置非編輯狀態
verticalView->setEditTriggers(QTableView::NoEditTriggers);
5.設置點擊行為
verticalView->setSelectionBehavior(QTableView::SelectRows);
6.模型對象
 QStandardItemModel *model = new QStandardItemModel;
 model->setColumnCount(4);
 model->setHeaderData(0,Qt::Horizontal,tr("File"));
 model->setHeaderData(1,Qt::Horizontal,tr("Path"));
 model->setHeaderData(2,Qt::Horizontal,tr("Size"));
 model->setHeaderData(3,Qt::Horizontal,tr("Duration"));
設置顯示模型為4列
7.增加項到模型
  QStandardItem* item1 = new QStandardItem(tr("Yesterday Once More.mid"));
 QStandardItem* item2 = new QStandardItem(tr("C://Mid//"));
 QStandardItem* item3 = new QStandardItem(tr("0.001M"));
 QStandardItem* item4 = new QStandardItem(tr("3:48"));
 QList<QStandardItem*> item;
 item << item1 << item2 << item3 << item4;
 model->appendRow(item);
8.設置模型到View
setModel(model);



posted @ 2011-09-05 10:30 ccsdu2009 閱讀(10203) | 評論 (0)編輯 收藏
 
#include <cstdlib>
#include 
<cstdio>
#include 
<iostream>
#include 
<tidy/tidy.h>

using namespace std;

int main(int argc, char *argv[])
{
    
int rc = -1;
    Bool ok;

    TidyDoc tdoc 
= tidyCreate();                    
    ok 
= tidyOptSetBool(tdoc,TidyXhtmlOut,yes);  
    rc 
= tidyParseFile(tdoc,"file.html");
    rc 
= tidyCleanAndRepair(tdoc);   
    rc 
= tidyRunDiagnostics(tdoc);
    rc 
= tidySaveFile(tdoc,"file.htm");          
 
    tidyRelease(tdoc);
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
posted @ 2011-08-12 19:46 ccsdu2009 閱讀(914) | 評論 (0)編輯 收藏
 
學習QTabWidget例子
1.
#ifndef GENERALTAB_H
#define GENERALTAB_H
#include 
<QWidget>
#include 
<QFileInfo>

class GeneralTab : public QWidget
{
    Q_OBJECT
public:
    GeneralTab(
const QFileInfo &fileInfo, QWidget *parent = 0);
    
~GeneralTab();
};

#endif
源文件:
#include "generaltab.h"
#include 
<QDateTime>
#include 
<QtGui/QVBoxLayout>
#include 
<QtGui/QLabel>
#include 
<QtGui/QLineEdit>

GeneralTab::
~GeneralTab(){}

GeneralTab::GeneralTab(
const QFileInfo &fileInfo, QWidget *parent):
QWidget(parent)
{
     QLabel 
*fileNameLabel = new QLabel(tr("File Name:"));
     QLineEdit 
*fileNameEdit = new QLineEdit(fileInfo.fileName());
     QLabel 
*pathLabel = new QLabel(tr("Path:"));
     QLabel 
*pathValueLabel = new QLabel(fileInfo.absoluteFilePath());
     pathValueLabel
->setFrameStyle(QFrame::Panel | QFrame::Sunken);

     QLabel 
*sizeLabel = new QLabel(tr("Size:"));
     qlonglong size 
= fileInfo.size()/1024;
     QLabel 
*sizeValueLabel = new QLabel(tr("%1 K").arg(size));
     sizeValueLabel
->setFrameStyle(QFrame::Panel | QFrame::Sunken);

     QLabel 
*lastReadLabel = new QLabel(tr("Last Read:"));
     QLabel 
*lastReadValueLabel = new QLabel(fileInfo.lastRead().toString());
     lastReadValueLabel
->setFrameStyle(QFrame::Panel | QFrame::Sunken);

     QLabel 
*lastModLabel = new QLabel(tr("Last Modified:"));
     QLabel 
*lastModValueLabel = new QLabel(fileInfo.lastModified().toString());
     lastModValueLabel
->setFrameStyle(QFrame::Panel | QFrame::Sunken);

     QVBoxLayout 
*mainLayout = new QVBoxLayout;
     mainLayout
->addWidget(fileNameLabel);
     mainLayout
->addWidget(fileNameEdit);
     mainLayout
->addWidget(pathLabel);
     mainLayout
->addWidget(pathValueLabel);
     mainLayout
->addWidget(sizeLabel);
     mainLayout
->addWidget(sizeValueLabel);
     mainLayout
->addWidget(lastReadLabel);
     mainLayout
->addWidget(lastReadValueLabel);
     mainLayout
->addWidget(lastModLabel);
     mainLayout
->addWidget(lastModValueLabel);
     mainLayout
->addStretch(1);

     setLayout(mainLayout);
}
 如上是QTabWidget中一個頁面對象

#ifndef DIALOG_H
#define DIALOG_H

#include 
<QtGui/QDialog>
#include 
<QtGui/QTabWidget>
#include 
<QtGui/QDialogButtonBox>

class Dialog : public QDialog
{
    Q_OBJECT
public:
    Dialog(QWidget 
*parent = 0);
    
~Dialog();
private:
    QTabWidget       
*tab;
    QDialogButtonBox 
*buttonbox;
};

#endif // DIALOG_H

#include "dialog.h"
#include 
<QFileInfo>
#include 
<QDialogButtonBox>
#include 
<QDateTime>
#include 
<QtGui/QVBoxLayout>
#include 
<QtGui/QLabel>
#include 
<QtGui/QLineEdit>
#include 
"generaltab.h"

Dialog::Dialog(QWidget 
*parent)
    : QDialog(parent)
{
    QFileInfo fileInfo(
"tab.exe");
    tab 
= new QTabWidget;
    tab
->addTab(new GeneralTab(fileInfo),tr("Info1"));
    tab
->addTab(new GeneralTab(fileInfo),tr("Info2"));
    tab
->addTab(new GeneralTab(fileInfo),tr("Info3"));

    buttonbox 
= new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
    connect(buttonbox, SIGNAL(accepted()), 
this, SLOT(accept()));
    connect(buttonbox, SIGNAL(rejected()), 
this, SLOT(reject()));

    QVBoxLayout 
*layout = new QVBoxLayout;
    layout
->addWidget(tab);
    layout
->addWidget(buttonbox);
    setLayout(layout);
    setWindowTitle(tr(
"Tab Dialog"));
}

Dialog::
~Dialog()
{
}
 
posted @ 2011-08-06 22:55 ccsdu2009 閱讀(6989) | 評論 (0)編輯 收藏
僅列出標題
共38頁: First 16 17 18 19 20 21 22 23 24 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>
            亚洲经典三级| 国产精品啊v在线| 欧美不卡高清| 久久久999精品免费| 久久福利精品| 一区二区av在线| 欧美激情第3页| 亚洲国产精品成人一区二区| 亚洲成色999久久网站| 亚洲精品视频在线观看免费| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美激情四色| 亚洲福利视频一区二区| 亚洲国产高清一区二区三区| 在线日韩欧美| 日韩视频永久免费| 欧美一区二区三区的| 免费一级欧美片在线播放| 亚洲乱码国产乱码精品精可以看| 亚洲一级电影| 可以免费看不卡的av网站| 欧美日韩国产黄| 国产综合一区二区| 亚洲色图自拍| 久久久青草青青国产亚洲免观| 久久国产精品色婷婷| 亚洲小视频在线观看| 久久综合国产精品台湾中文娱乐网| 欧美日韩国产三区| 狠狠色狠狠色综合| 亚洲一品av免费观看| 免费观看国产成人| 亚洲一区二区成人| 欧美精品国产精品| 在线不卡a资源高清| 午夜在线不卡| 亚洲日本一区二区| 久久精选视频| 欧美伊久线香蕉线新在线| 欧美亚洲午夜视频在线观看| 久久亚洲精品中文字幕冲田杏梨| 欧美日本高清视频| 好吊妞**欧美| 欧美一区二区在线| 99精品欧美一区| 欧美a级一区| 黄色精品在线看| 欧美一区二区成人6969| 亚洲精品美女在线观看播放| 久久久久久尹人网香蕉| 亚洲乱码国产乱码精品精天堂| 午夜精品美女久久久久av福利| 91久久黄色| 女女同性精品视频| 亚洲电影免费观看高清| 久久婷婷国产综合精品青草| 亚洲欧美日韩精品综合在线观看| 欧美日韩在线一区二区三区| 亚洲另类春色国产| 亚洲韩国日本中文字幕| 另类成人小视频在线| 激情欧美一区二区三区| 久久久精彩视频| 久久成人羞羞网站| 极品中文字幕一区| 欧美大尺度在线观看| 久久久另类综合| 欧美伊人久久大香线蕉综合69| 国产日韩欧美视频在线| 欧美一区二区三区四区夜夜大片| 亚洲一区免费看| 国产免费成人av| 久久精品免费观看| 久久久久国色av免费观看性色| 国产亚洲制服色| 美女日韩在线中文字幕| 欧美日韩免费精品| 久久久夜精品| 亚洲欧美bt| 精品不卡一区| 欧美成人性网| 欧美精品尤物在线| 亚洲香蕉网站| 欧美一级免费视频| 娇妻被交换粗又大又硬视频欧美| 美女国产一区| 欧美日韩成人综合| 亚洲免费伊人电影在线观看av| 亚洲午夜精品| 伊人狠狠色丁香综合尤物| 亚洲国产欧美一区二区三区同亚洲 | 亚洲精品护士| 亚洲精品美女| 国产亚洲精品成人av久久ww| 亚洲欧洲综合另类| 欧美色精品天天在线观看视频| 亚洲欧美日韩成人高清在线一区| 欧美一区二区视频观看视频| 亚洲人屁股眼子交8| 一区二区三区欧美亚洲| 激情欧美一区二区| 一区二区免费在线播放| 激情欧美一区二区三区| 欧美激情第3页| 一本大道久久a久久精品综合| 亚洲影视在线| 亚洲级视频在线观看免费1级| 亚洲视频精品| 亚洲三级影院| 欧美在线看片a免费观看| 日韩一级大片在线| 久久久精品一品道一区| 亚洲影音一区| 1769国产精品| 亚洲一区二区三区涩| 久久久五月天| 欧美影院久久久| 欧美日韩中文字幕在线视频| 国产精品高精视频免费| 久久久精品国产免费观看同学| 欧美日本精品一区二区三区| 麻豆精品一区二区av白丝在线| 国产精品成人va在线观看| 欧美亚洲三区| 欧美日韩国产色综合一二三四| 麻豆国产精品va在线观看不卡| 国产精品一二一区| 国产精品99久久久久久有的能看| 亚洲欧洲三级电影| 久久久免费观看视频| 欧美私人网站| 亚洲精品韩国| 欧美国产一区在线| 欧美激情欧美激情在线五月| 禁断一区二区三区在线| 久久精品人人做人人爽电影蜜月 | 久久se精品一区二区| 欧美日韩免费看| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产欧美日韩一级| 亚洲欧美日韩精品在线| 欧美一区午夜精品| 国产欧美日韩亚洲精品| 欧美在线免费视屏| 亚洲欧美日韩天堂一区二区| 国产精品久久久久永久免费观看| 99xxxx成人网| 欧美三级日韩三级国产三级| 99re66热这里只有精品4| 一区二区三区免费在线观看| 欧美成人久久| 欧美国产日韩在线| 亚洲品质自拍| 欧美网站在线观看| 尤物yw午夜国产精品视频明星 | 亚洲一本大道在线| 亚洲国产成人高清精品| 欧美在线视频播放| 亚洲视频在线一区观看| 午夜精品久久久久久久久久久 | 欧美成人免费全部观看天天性色| 欧美黄在线观看| 中国日韩欧美久久久久久久久| 欧美色欧美亚洲高清在线视频| 亚洲网站在线看| 久久只精品国产| 99精品国产在热久久| 国产精品mv在线观看| 亚洲欧美日韩直播| 久久综合色天天久久综合图片| 亚洲片区在线| 欧美日韩视频在线| 欧美一区二区三区四区高清| 国产欧美一区二区精品忘忧草| 欧美一区二区三区的| 欧美国产精品人人做人人爱| 亚洲精品小视频在线观看| 国产精品成人观看视频免费| 亚洲欧美日韩系列| 毛片精品免费在线观看| 亚洲三级视频在线观看| 国产精品欧美经典| 能在线观看的日韩av| 这里只有精品丝袜| 亚洲电影观看| 久久久久久色| 亚洲欧美国产精品桃花| 亚洲激情第一页| 国产欧美在线观看| 欧美日韩视频一区二区| 久久久久久久一区| 9久草视频在线视频精品| 久久久精品2019中文字幕神马| 亚洲一区二区在线播放| 黄色成人av在线| 国产精品视频网址| 欧美日韩免费在线| 老司机精品视频网站| 亚洲精品国精品久久99热| 欧美日韩一区二区视频在线观看 |