16,216
社区成员
发帖
与我相关
我的任务
分享
SOURCES += Main.cpp
LIBS = F:\QTLearning\LoadLibDLLTest\debug\libpnp_basictools.a #这里根据你的路径修改pnp_basictools插件的位置
HEADERS += interfaces.h
#include <QApplication>
#include <QtGui>
#include <QtPlugin>
#include "interfaces.h" ////QT 例子中 plugandpaint 的接口定义 头文件, 复制到当前工程目录下
QT_BEGIN_NAMESPACE
Q_IMPORT_PLUGIN(pnp_basictools)
QT_END_NAMESPACE
class MainWindow : public QWidget
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0)
{
foreach (QObject *plugin, QPluginLoader::staticInstances()){
if (plugin) {
BrushInterface *iBrush = qobject_cast<BrushInterface *>(plugin);
if (iBrush) bi = iBrush;
}
}
}
protected:
void paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.save();
painter.setPen(QPen(Qt::red, 4, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
QRect rect = bi->mouseMove("Pencil", painter, QPoint(10,10),QPoint(200,44));
const QRect rect1 = bi->mouseMove("Pencil", painter, QPoint(555,444),QPoint(300,14));
rect = rect.intersect(rect1);
painter.restore();
update(rect);
}
private:
BrushInterface *bi;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
#include "Main.moc"