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

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>
            午夜视频久久久| 欧美 日韩 国产精品免费观看| 国产亚洲欧美一级| 另类春色校园亚洲| 欧美不卡一区| 一区二区成人精品| 欧美福利小视频| 欧美视频日韩视频在线观看| 欧美xart系列高清| 欧美在线免费视频| 国产欧美亚洲精品| 亚洲女人天堂成人av在线| 亚洲午夜女主播在线直播| 国产精品青草综合久久久久99| 一区二区三区你懂的| 亚洲啪啪91| 在线观看国产欧美| 美女露胸一区二区三区| 亚洲国产成人久久综合| 影音先锋亚洲精品| 91久久国产自产拍夜夜嗨| 欧美午夜国产| 亚洲免费不卡| 在线激情影院一区| 一区二区三区视频免费在线观看| 午夜精品999| 国产亚洲欧美另类一区二区三区| 美女精品在线观看| 国产精品v片在线观看不卡| 欧美中文在线字幕| 国产区日韩欧美| 日韩午夜精品| 一区二区毛片| 国产精品成人国产乱一区| 宅男精品视频| 欧美成人精品一区二区| 国产精品成人观看视频国产奇米| 午夜精品久久久久久| 午夜精品区一区二区三| 国产精品久久久久久久7电影| 欧美大片一区| 午夜精品久久久久久99热软件| 久久精品国产综合精品| 亚洲人成人一区二区在线观看| 欧美三区在线视频| 欧美激情第六页| 欧美一区二区视频在线观看2020| 永久91嫩草亚洲精品人人| 久久久www成人免费精品| 亚洲一级特黄| 亚洲自拍高清| 日韩视频永久免费| 久久国产欧美| 久久精品99国产精品日本| 欧美插天视频在线播放| 欧美一区亚洲二区| 国产精品久久久对白| 日韩亚洲欧美成人| 欧美大片免费看| 日韩小视频在线观看| 欧美一区二视频| 久久亚洲国产精品日日av夜夜| 亚洲国产日韩一区| 欧美一区二视频| 亚洲国产一区二区视频 | 国产精品久久久久毛片大屁完整版 | 91久久精品国产91性色tv| 欧美国产精品久久| 久久久久国产精品午夜一区| 日韩一二三区视频| 亚洲第一精品久久忘忧草社区| 另类国产ts人妖高潮视频| 欧美国产精品v| 牛牛精品成人免费视频| 亚洲成人在线视频网站| 欧美激情一区二区三区全黄| 99国产麻豆精品| 麻豆国产精品一区二区三区| 日韩视频免费观看高清在线视频 | 一区二区三区视频观看| 欧美国产日韩a欧美在线观看| 欧美一区二区视频免费观看 | 亚洲一区美女视频在线观看免费| 亚洲伊人久久综合| 亚洲欧美国产精品专区久久| 欧美亚洲一区二区在线| 老司机免费视频一区二区三区| 久久精品二区亚洲w码| 欧美成人精品福利| 亚洲黄色免费网站| 亚洲欧美久久久| 久热这里只精品99re8久| 欧美日韩专区在线| 亚洲靠逼com| 久久久久国产成人精品亚洲午夜| 久久久噜噜噜| 性久久久久久久| 国产精品爽爽ⅴa在线观看| 亚洲日本理论电影| 欧美专区中文字幕| 午夜视频在线观看一区二区三区| 美女啪啪无遮挡免费久久网站| 在线观看日韩av先锋影音电影院| 日韩视频欧美视频| 久久久综合网| 久久婷婷久久| 国产亚洲精品一区二区| 久久精品一区二区三区不卡牛牛| 国产欧美日韩精品丝袜高跟鞋| 欧美亚洲视频一区二区| 亚洲午夜未删减在线观看| 美女日韩欧美| 欧美插天视频在线播放| 中文亚洲视频在线| 亚洲精品久久久久| 国产视频在线观看一区二区三区| 欧美激情精品久久久| 欧美日韩一区综合| 亚洲欧美日韩国产另类专区| 欧美国产亚洲精品久久久8v| 欧美中文在线字幕| 激情视频一区二区| 国产精品海角社区在线观看| 国产精品久久影院| 久久久91精品国产| 一区二区三区黄色| 好吊日精品视频| 欧美成人蜜桃| 欧美在线视频免费| 欧美3dxxxxhd| 亚洲国产毛片完整版 | 久热国产精品| 国产麻豆91精品| 91久久精品国产91性色tv| 国一区二区在线观看| 亚洲在线黄色| 亚洲午夜未删减在线观看| 欧美精品一区二区三| 99riav久久精品riav| 亚洲第一黄网| 免费日韩精品中文字幕视频在线| 久久国产66| 日韩午夜电影| 亚洲国产成人一区| 欧美日韩精品久久久| 亚洲一区二区三区精品在线| 午夜精品国产| 国产精品一区二区久久久久| 亚洲在线播放| 亚洲精品无人区| 欧美成人一品| 久久久久久69| 久久精品99国产精品日本| 国产日韩一区| 久久这里有精品15一区二区三区| 欧美高清在线视频观看不卡| 在线观看免费视频综合| 美国十次了思思久久精品导航| 99精品福利视频| 亚洲欧美卡通另类91av| 国产亚洲精品久久久久婷婷瑜伽| 欧美日韩国产色综合一二三四 | 久久综合九色九九| 欧美韩国日本一区| 免费视频亚洲| 久久亚洲综合色| 中文在线资源观看网站视频免费不卡 | 久久综合久久综合久久| 久久久久久夜| 亚洲欧美日韩一区二区三区在线观看 | 亚洲欧美日韩区| 夜夜嗨av一区二区三区网页| 91久久精品网| 久久综合色播五月| 欧美在线999| 久久av二区| 一区二区三区黄色| 亚洲精品欧美精品| 亚洲一区二区三区四区视频| 亚洲天堂av高清| 亚洲韩国青草视频| 午夜精品久久久久久久蜜桃app| 亚洲自拍偷拍一区| 亚洲国产专区| 翔田千里一区二区| 国产精品日韩在线| 欧美一级在线视频| 亚洲欧美日韩国产| 欧美日韩综合不卡| 欧美一区=区| 亚洲欧美在线网| 国产精品盗摄久久久| 久久成人综合网| 中文一区二区| 激情五月***国产精品| 中文一区二区在线观看| 亚洲精品影院在线观看| 国产精品成人一区二区艾草| 日韩小视频在线观看专区| 91久久综合|