医疗岗面试自我介绍,Qt插件机制介绍及实现,2024腾讯Python面试题精选

$ mkdir ImageView

$ touch main.cpp mainwindow.h mainwindow.cpp

$ qmake -project

$ ls

mainwindow.h ImageView.pro main.cpp mainwindow.cpp

编辑项目文件ImageView.pro

$ vim ImageView.pro

修改后项目文件内容如下:

#项目模板

TEMPLATE = app

#生成目标

TARGET = ImageView

INCLUDEPATH += .

#向qmake声明应用程序依赖widgets模块

greaterThan(QT_MAJOR_VERSION,4): QT += widgets

#引入头文件

HEADERS += mainwindow.h

SOURCES += main.cpp mainwindow.cpp

mainwindow.cpp

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

#include

#include

#include

//创建新的窗口类

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

explicit MainWindow(QWidget *parent=nullptr);

~MainWindow();

private:

void initUI();

void createActions();

void showImage(QString);

private slots:

void openImage();

private:

QMenu *fileMenu;

QMenu *editMenu;

QToolBar *fileToolBar;

QToolBar *editToolBar;

QGraphicsScene *imageScene;

QGraphicsView *imageView;

QAction *openAction;

QString currentImagePath;

QGraphicsPixmapItem *currentImage;

};

#endif // MAINWINDOW_H

main.cpp

#include

#include “mainwindow.h”

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

MainWindow window;

window.setWindowTitle(“ImageView”);

window.show();

return app.exec();

}

mainwindow.cpp

#include

#include

#include

#include

#include

#include

#include “mainwindow.h”

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent)

, fileMenu(nullptr)

, editMenu(nullptr)

, currentImage(nullptr)

{

initUI();

}

MainWindow::~MainWindow()

{

}

void MainWindow::initUI()

{

this->resize(800, 600);

// 创建菜单

fileMenu = menuBar()->addMenu(“&File”);

editMenu = menuBar()->addMenu(“&Edit”);

// 创建工具栏

fileToolBar = addToolBar(“File”);

editToolBar = addToolBar(“Edit”);

// 图片显示区域

imageScene = new QGraphicsScene(this);

imageView = new QGraphicsView(imageScene);

setCentralWidget(imageView);

createActions();

}

void MainWindow::createActions()

{

// 创建动作,用于打开图片

openAction = new QAction(“&Open”, this);

fileMenu->addAction(openAction);

// 将动作添加至工具栏

fileToolBar->addAction(openAction);

// 连接信号和槽

connect(openAction, SIGNAL(triggered(bool)), this, SLOT(openImage()));

}

void MainWindow::openImage()

{

qDebug() << “slot openImage is called.”;

QFileDialog dialog(this);

dialog.setWindowTitle(“Open Image”);

dialog.setFileMode(QFileDialog::ExistingFile);

dialog.setNameFilter(tr(“Images (*.png *.bmp *.jpg)”));

QStringList filePaths;

if (dialog.exec()) {

filePaths = dialog.selectedFiles();

showImage(filePaths.at(0));

}

}

void MainWindow::showImage(QString path)

{

imageScene->clear();

imageView->resetTransform();

QPixmap image(path);

currentImage = imageScene->addPixmap(image);

imageScene->update();

imageView->setSceneRect(image.rect());

currentImagePath = path;

}

编译运行

主窗口程序编写完成后,编译测试

$ qmake -makefile

$ make

$ ./ImageView

主窗口成功运行由于上述代码并非本文主要说明对象,因此不做过多解释。

接下来,使用Qt插件机制,实现图片模糊操作。

插件接口


首先是一些必须安装的依赖项:

Qt插件机制是一种强大的方法,它使Qt应用程序更具可扩展性。使用此机制抽象出一种可以轻松添加新功能的方法。

完成后,只需要注意功能的名称和操作,就可以添加一个新功能。

第一步是找出一个接口,以便在应用程序和插件之间提供一个公共协议,这样就可以加载和调用插件,而不管它们是如何实现的。在C++中,接口是一个带有纯虚成员函数的类。对于插件,处理动作名和操作,因此,创建editor_plugin_interface.h文件,在editor_plugin_interface.h中声明接口:

#ifndef EDITOR_PLUGIN_INTERFACE_H

#define EDITOR_PLUGIN_INTERFACE_H

#include

#include

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

80f4904270636b8e.png)

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-jHkIurAb-1712503009918)]

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 插件框架是一种动态加载的机制,它允许在运行时向 Qt 应用程序中添加功能模块。Qt 插件框架的实现原理主要包括以下几个方面: 1. 插件分类 Qt 插件框架将插件分为两类:静态插件和动态插件。静态插件是编译到应用程序中的插件,它们在应用程序启动时被加载。动态插件是独立于应用程序的库,它们在运行时被加载。 2. 插件接口 Qt 插件框架定义了插件接口,插件必须实现这些接口才能被加载。插件接口通常是一个纯虚类,它们定义了插件的功能、属性和行为。 3. 插件元数据 Qt 插件框架使用元数据来描述插件,包括插件名、版本号、作者、描述、依赖关系等信息。插件元数据通常以 XML 格式存储。 4. 插件加载 Qt 插件框架使用 QPluginLoader 类来加载插件。QPluginLoader 会根据插件的元数据查找插件库,并调用插件接口的实现来完成插件的加载和初始化。 5. 插件管理 Qt 插件框架提供了插件管理器来管理插件插件管理器可以枚举、查找、加载和卸载插件,还可以管理插件间的依赖关系。 6. 插件通信 Qt 插件框架提供了信号和槽机制实现插件之间的通信。插件可以通过信号和槽来传递消息和数据,实现插件之间的互操作。 总之,Qt 插件框架提供了一种灵活、可扩展的机制,使得应用程序可以在运行时加载和卸载插件,从而实现更丰富、更灵活的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值