位置: IT常识 - 正文

Qt+OpenCV(一)Qt基础操作和使用opencv初识(qt+opencv教程)

编辑:rootadmin
Qt+OpenCV(一)Qt基础操作和使用opencv初识

推荐整理分享Qt+OpenCV(一)Qt基础操作和使用opencv初识(qt+opencv教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:qt opencv mingw,qt opencl,qt和opencv环境搭建,qt和opencv环境搭建,qt opencv mingw,qt+opencv教程,qtcreator opencv,qt+opencv教程,内容如对您有帮助,希望把文章链接给更多的朋友!

        准备开始学习一本新书,名字叫做《OpenCV3和Qt5计算机视觉应用开发》,之前也接触过一些Qt和Opencv应用的例子,不过都不成系统,也比较粗浅,基本上是一边查资料一边临时用上去的,这次学习这本书一方面想补充整理学习到的知识,另一方面也接触学习运用Qt和Opencv组合的计算机视觉方法,说不好会对以后的学习研究有没有帮助,不过倒是可以打发打发这段时间。

        相关的配置在之前的帖子里面已经记录过了,那今天就记录整理一下这本书的第二章内容——创建第一个Qt+OpenCV项目。这一章呢,大概是介绍Qt的一些基础应用,然后有一个Qt+Opencv的比较简单的小项目例子。

        章节的内容比较多,本着只记录一些自己认为比较重要的内容,就简单一些。

目录

1 Qt Creator

1.1 Qt Creator的模式

1.2 Qt Creator的选项窗口

2 OpenCV+Qt的简易项目


1 Qt Creator

        首先比较简单的介绍一下Qt Creator。这是一个由Qt框架创建并为其服务的IDE,简单理解的话,就是可以在这上面创建Qt的项目,当然我们也可以在VS等编译器上使用Qt框架,不过初学的话,我还是比较喜欢轻量开源的Qt Creator的界面风格。以下是它的一些重要特性:

        (1)使用会话管理多个IDE状态

        (2)多个Qt项目管理

        (3)用户界面设计

        (4)代码编辑

        (5)跨平台

        (6)应用程序调试

        (7)上下文相关帮助

        最早接触Qt是大学课程设计时需要做用户界面,然后稍微接触了一些,对上面的一些特性有了一些了解,但是因为本人做事凌乱懒散的特点,其实对于Qt的理解掌握应该可能只在入门的边缘徘徊吧……不过没关系,希望通过后面个人的学习慢慢加深印象,更好地理解掌握Qt的内容。

1.1 Qt Creator的模式

        如图,Qt Creator共有6种模式,见右侧边栏,分别是欢迎、编辑、设计、调试、项目和帮助模式,每一种模式下,主页面都呈现不同的内容,通过点击左侧对应的选项可以切换不同的模式,以下分别阐述欢迎、编辑、设计和帮助模式,其他两种模式留待后续学习。

1.1.1 欢迎模式

        首先是欢迎模式,这是Qt Creator打开后第一个看到的页面即初始模式。该模式下有三个子模式:项目、示例和教程。

        项目子模式可以用于创建新的项目或打开最近的项目,此外session部分可以用于存储和恢复IDE状态,这部分书中没有讨论,就留到以后再学习吧。

         示例子模式和教程子模式比较类似,前者提供很多带注释的例子以供学习,后者包含视频演示与示例,定期浏览教程内容可以及时了解最新特性和使用方法。

 

 1.1.2 编辑模式

        接下来是编辑模式,进行项目开发时将频繁使用到该模式。

        首先看编辑模式下窗体的不同部分,序号①、③是左右两侧的工具条,序号②是主要的代码编写区域。默认情况下,只有左侧工具条可见,但是可以使用屏幕辆车底部的按钮关闭或打开工具条。

        主代码区是一个轻量级的代码编辑器,具备代码完成、代码高亮和上下文相关帮助等功能,当鼠标光标位于代码编辑器的Qt类上时,可以按下F1键查看上下文有关的帮助信息。

        两侧顶部的箭头可以改变工具条的模式,可用的工具条模式有:

         这些模式的内容包括:

项目包含已打开项目及其包含文件的列表打开文档只显示已经打开的文件,可以点击文件旁的“X”手动关闭文件书签显示在代码中所建的书签文件系统文件浏览器,显示工程项目文件夹的所有文件,也可浏览计算机上的其他文件夹类视图查看当前项目中的类层次结构大纲相似当前已打开文件中的所有方法与符号的层次结构测试显示项目中的所有可用测试

类型层次及

Include Hierarchy

查看类层次结构以及所包含头文件的层次结构

1.1.3 设计模式

        接下里是设计模式,与其他模式不同,设计模式并不能通过左侧边栏进行切换,要打开设计模式,首先要打开一个用户界面文件(*.ui),即可以通过双击打开左窗体的mainwindow.ui文件。

Qt+OpenCV(一)Qt基础操作和使用opencv初识(qt+opencv教程)

        设计模式提供用户界面设计器的所有工具,它有一个所见即所得类型的用户界面GUI编辑器,该编辑器可用于对Qt控件实施添加、删除、编辑或编写代码等操作,控件也可以根据需要从用户界面中添加或删除。

        设计模式的界面也可以分为三个部分。中间主要区域可以任意拖放/删除控件、调整控件的大小,是一个可视化编辑用户界面的取悦;左侧是一个可以添加到用户界面的空间列表;右侧可以查看用户界面控件的的分层视图并修改每个控件的属性。

        在中间主体部分的底部,可以看到“Action Editor”和“Signals_Slots Editor”。为了理解它们的工作原理,首先需要了解Qt中信号和槽的概念,简单来说这是一张消息传递的方法,发出信息->槽响应,因为之前接触过,所以就不记录太多了。

        接下里记录一下每个控件的大概作用,其实按我对自己的了解,除了常用的一些,其他大部分的控件作用和使用方法我估计是记不住的,不过没关系,需要的时候能够从书中或者网络查找到也可以,用得多了自然就熟悉了。

布局垂直布局等价Qt类QVBoxLayout,垂直分布水平布局等价Qt类QHBoxLayout,水平分布网格布局等价Qt类QGridLayout,建立具有任意数量的行和列的控件网格表单布局等价Qt类QFormLayout,建立包含一些标签和对应的输入控件的表单状外观间隔符水平间隔符用于在同处一行的两个控件之间插入空白,形似弹簧垂直间隔符用于在同处一列的两个控件之间插入空白,形似弹簧按钮按键按钮最常用的简单按钮,QPushButton工具按钮与按键按钮相似,通常要添加到工具栏中

单选按钮

从众多其定义的选项中选中或取消某个选项,QRadioButton复选框用于启用或禁用选项,QCheckBox命令链接按钮

windows vista样式的命令链接按钮,可以代替向导中的单选按钮

类似于使用单选框选择一个选项,然后在向导对话框点击Next,QCommandLinkButton

对话框按钮让按钮能够在对话框中使用操作系统样式,QDialogButtonBox常见栏菜单栏(QMenuBar)位于窗口顶部的水平朱菜单栏,可以有任意数量的对象元素和子对象元素,每一个对象元素可以触发某个动作(QAction)       唯一工具栏(QToolBar)可移动的窗体,包含与特定任务对应的工具按钮  可以有任意数量状态栏(QStatusBar)位于底部的水平信息栏   唯一 对象元素视图列表视图(List View)简单列表显示, QListView树状视图(Tree View)层次结构的形式显示,QTreeView表格视图(Table View)以具有任意数量的行和列的表格显示,QTableView列视图(Column View)与列表视图类似,还显示模型中存储的层次数据,QColumnView

对象元素控件

列表控件 类似列表视图,但有基于对象元素的API,可用来增加、移除修改其对象元素,QListWidget 树状控件 类似树状视图,但有基于对象元素的API,可用来增加、移除修改其对象元素,QTreeWidget 表格控件 类似列表视图,但有基于对象元素的API,可用来增加、移除修改其对象元素,QTabletWidget

容器组框简单的带标题和边框的分组框,QGroupBox滚动区可滚动的区域,QScrollArea工具箱用于在不同选项卡组或列中对控件分组,每个选项卡可展开其包含的组件,同时隐藏其他选项卡的内容,QToolBox选项卡控件用于在选项卡页面显示不同组的控件,可以通过单击对应的选项卡来切换每个页面或一组控件,QTabWidget堆叠控件类似选项卡控件,但只有一页且一直可见,如果希望把不同的用户界面设计到一页并根据用户的操作切换成不同的页面,这个控件就特别有用,QStackedWidget框架用作所有带框架的控件的占位符,也是所有带框架控件的基类,qframe控件与QWidget类相同,所有Qt空间的基类MDI区域可用于在一个窗口或Qt控件内创建所谓的多文档界面,右键MDI区域可添加新窗口,QMdiAreaQAx控件 QAx Widget用作Active-X控件的封装器,只适用于WIndows用户且依赖一个名为axcontainer的Qt模块,QAXWidget停靠控件 Dock Widget用作特定控件的占位符,可以停靠在一个窗口内部或者移到其外面作为一个独立的顶部窗口,QDockWidget输入控件组合框下拉列表框,QComboBox字体下拉列表框类似下拉列表框,但可选择计算机上的可用字体创建字体列表行编辑器输入和显示一行文本,QLineEdit文本编辑输入和显示多格式文本,实际是成熟的所见即所得格式文本编辑器,QTextEdit纯文本编辑可用于查看和编辑多行文本,可以看作简单的记事本控件,QPlainTextEdit选值框可用于输入一个整数或离散值集合,QSpinBox双精度选值框类似选值框,但可接受双精度值,QDoubleSpinBox时间编辑输入时间值,QTimeEdit日期编辑输入日期值,QDateEdit日期/时间编辑框输入时间值和日期值,QDateTimeEdit表盘与滚动条类似,但形状为圆形的表盘,QDial水平/竖直栏水平或竖直方向的滚动条,QScrollBar水平/垂直滑块输入指定范围内的整数值,QSlider键盘序列编辑可用于输入一个键盘快捷键,QKeySequenceEdit显示控件标签

显示数字、文本、图像、日期等输出数据,QLabel

文本浏览器除增加连接之间的导航外,其余与文本编辑框控件几乎一样,QTextBrowser图形视图用于显示图形场景的内容,QGraphicsView日历控件用于在按月显示的日历中查看和选择日期,QCalendarWidgetLCD数字用于在类似液晶屏的显示器中显示数字,QLCDNumber进度条用于显示垂直的或水平的进度进度指示器,QProgressBar水平线/垂直线用于绘制简单的垂直线或水平线作为分隔符OpenGl控件用作渲染OpenGL输出的一个表面,QOPenGLWidgetQQuickWideget用于显示Qt Quick用户界面,该界面使用QML语言设计用户界面

1.1.4 帮助模式

        帮助模式不仅可以按文字搜索与Qt相关的所有信息,查看每一个类与模块的大量应用示例,可以用它查找每个类所需的正确模块,要做到这一点只需要切换到索引模式进行检索即可。

1.2 Qt Creator的选项窗口

        接下来了解一下Qt Creator的选项窗口。

        在主菜单中,选择工具->选项,即可进入选项窗口。

 下面根据书籍内容,简要介绍介绍部分选项内容。

环境外观相关的设置,更改主题、字体、文本大小、语言及其所有设置文本编辑器设置包括代码编辑器相关的所有内容FakeVim为熟悉Vim编辑器的人准备的,启用并配置Vim样式的代码编辑帮助包含帮助与上下文帮助相关的所有选项C++与C++编码和代码编辑相关的设置Qt Quick影响Qt Quick设计器以及QML代码编辑的选项构建和运行可能是Qt Creator中最重要的选项页,这里的设置会直接影响应用程序的构建和运行体验调试器与调试模式相关设计师配置模板项目以及与设计模式相关的其他设置分析器包括Clang代码分析器、QML分析器等相关设置版本控制Qt提供了众多版本控制系统的非常可靠的集成,如Git和SVN,这里提供与版本控制相关的所有设置设备可以用它为安卓开发配置Qt Creator,包括与设备相关的所有设置代码粘贴用于配置一些第三方服务,这些服务可以用于代码共享之类的任务测试Qt测试相关的设置等2 OpenCV+Qt的简易项目

        最后,是一个OpenCV+Qt的简易项目,主要用到了编辑模式和设计模式。

        首先展示项目的大致结果

        如图可以完成一个简易的图像过滤程序,选择对原始图像进行中值过滤或高斯过滤,保存处理后的图像并选择是否显示。

        首先是设计用户界面:

        然后开始代码编辑,首先不要忘记在PRO文件中添加代码保证Opencv的正常使用。

INCLUDEPATH += E:\OpenCV\opencv\opencv_build\install\includeLIBS += E:\OpenCV\opencv\opencv_build\lib\libopencv_*.a

         接下来为每一个需求以及用户界面上的相关控件编写代码。

        以inputPushButton为例,切换到设计器,右击选择转到槽,在该控件可以发出的所有信号中选择pressed。

 

        然后将自动添加代码到头文件和.cpp文件。

 

        接下来同样编辑其他控件的代码。mainwindow.h和mainwindow.cpp的文件内容如下,其中包含部分注释解释代码含义。

mainwindow.h

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include<QFileDialog>#include<QDir>#include<QFile>#include<QMessageBox>#include<QCloseEvent>#include<QSettings>#include<QTranslator>#include"opencv2/opencv.hpp"QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = nullptr); ~MainWindow();protected: //QCloseEvent类:用来传递有关窗口关闭事件的参数 void closeEvent(QCloseEvent*event); void changeEvent(QEvent*event);private slots: void on_inputPushButton_pressed(); void on_outputPushButton_pressed(); void on_actionTurkish_triggered(); void on_actionGerman_triggered(); void on_actionEnglish_triggered();private: Ui::MainWindow *ui; void loadSettings(); void saveSettings(); QTranslator *turkishTranslator; QTranslator*germanTranslator;//土耳其语翻译 德语翻译};#endif // MAINWINDOW_H

 mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"//#include <opencv2/core/core.hpp>//#include <opencv2/highgui/highgui.hpp>//#include <opencv2/imgproc/imgproc.hpp>//using namespace cv;MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){// 测试opencv与Qt配置// Mat img=imread("../learn_opencv/data/test1.png");// namedWindow( "Display window", WINDOW_AUTOSIZE );// imshow("Display window", img); ui->setupUi(this); loadSettings(); turkishTranslator=new QTranslator(this); turkishTranslator->load(":/translation/translation_tr.qm"); germanTranslator=new QTranslator(this); germanTranslator->load(":/translation/translation_de.qm");}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_inputPushButton_pressed(){ //QString类:表示Unicode字符串 执行存储 转换 修改 等操作 //QFileDialog类:选择计算机上的文件或文件夹 //QDir类:用于访问计算机上的文件夹,并获取有关文件夹的各种类型信息 //QFile类:访问文件 读取或写入文件 //getOpenFileName函数: //1 父控件 告诉编译器 QT 该类负责处理 QFileDialog类实例 //2 窗口标题 //3 当前路径 //4 确保应用程序只显示三种文件类型 QString fileName = QFileDialog::getOpenFileName(this, tr( "Open Input Image"), QDir::currentPath(), "Images(*.jpg *.png *.bmp)"); if(QFile::exists(fileName)){ ui->inputLineEdit->setText(fileName); }}void MainWindow::on_outputPushButton_pressed(){ //getSaveFileName函数:保存输出图像 //4 保存时可单独选择每个图像类型 //一般情况下 路径不能含中文 QString fileName = QFileDialog::getSaveFileName(this, tr("select Output Image"), QDir::currentPath(), "*.jpg;;*.png *;;.bmp"); if(!fileName.isEmpty()){ ui->outputLineEdit->setText(fileName); //所有OpenCV函数都包含在cv命名空间中 要确保正在使用cv using namespace cv; Mat inpImg,outImg; //注意:OpenCV使用C++ std::string 要将QString转换过来 //QString是控件的text()函数的返回值类型 inpImg=imread(ui->inputLineEdit->text().toStdString()); if(ui->medianBlurRadioButton->isChecked()){ cv::medianBlur(inpImg,outImg,5); } else if(ui->gaussianBlurRadioButton->isChecked()){ cv::GaussianBlur(inpImg,outImg,Size(5,5),1.25); } imwrite(fileName.toStdString(),outImg); if(ui->displayimageCheckBox->isChecked()){ imshow("Output Image",outImg); } }}void MainWindow::closeEvent(QCloseEvent *event){ //QMessageBox类:显示简单的图标、文本或消息 int result=QMessageBox::warning(this, tr("Exit"), "Are you sure you want to close this program?", QMessageBox::Yes, QMessageBox::No); if(result == QMessageBox::Yes){ saveSettings(); event->accept(); } else{ event->ignore(); }}void MainWindow::loadSettings(){ QSettings settings("Packt","learn_opencv",this); ui->inputLineEdit->setText(settings.value("inputLineEdit", "").toString()); ui->outputLineEdit->setText(settings.value("outputLineEdit", "").toString()); ui->medianBlurRadioButton ->setChecked(settings.value("medianBlurRadioButton", true).toBool()); ui->gaussianBlurRadioButton ->setChecked(settings.value("gaussianBlurRadioButton", false).toBool()); ui->displayimageCheckBox ->setChecked(settings.value("displayimageCheckBox", false).toBool());}void MainWindow::saveSettings(){ //QSetting类:为其提供组织名称 应用程序名称 //可记录传递给setVale函数所有内容并用value返回 QSettings settings("Packt","learn_opencv",this); settings.setValue("inputLineEdit", ui->inputLineEdit->text()); settings.setValue("outputLineEdit", ui->outputLineEdit->text()); settings.setValue("medianBlurRadioButton", ui->medianBlurRadioButton->isChecked()); settings.setValue("gaussianBlurRadioButton", ui->gaussianBlurRadioButton->isChecked()); settings.setValue("displayimageCheckBox", ui->displayimageCheckBox->isChecked());}void MainWindow::on_actionTurkish_triggered(){ qApp->installTranslator(turkishTranslator);}void MainWindow::on_actionGerman_triggered(){ qApp->installTranslator(germanTranslator);}void MainWindow::on_actionEnglish_triggered(){ qApp->removeTranslator(turkishTranslator); qApp->removeTranslator(germanTranslator);}void MainWindow::changeEvent(QEvent *event){ //如果更改事件是语言更改 则翻译窗口 否则照常 if(event->type()==QEvent::LanguageChange){ ui->retranslateUi(this); } else{ QMainWindow::changeEvent(event); }}

          最后,简单记录一下学习的几个新的Qt类。

QString类可能是Qt最重要并被广泛使用的类之一,表示Unicode字符串,可以用来对字符串执行存储、转换、修改或无数其他操作QFileDialog类用于选择计算机上的文件或文件夹。使用底层操作系统的API,因此操作系统不同,对话框可能也有不同QDir类用于访问计算机上的文件夹,并获取有关文件夹的各种类型信息QFile类用于访问文件,读取或写入文件QMessBox类用来显示简单的图标、文本或消息,取决于消息的用途QCloseEvent类Qt的众多事件类的一个,用于传递有关窗口关闭的时间参数QSettings类为其提供组织名称和应用程序名称,它可以记录下来传递给setValue函数的所有内容并用value函数返回它
本文链接地址:https://www.jiuchutong.com/zhishi/298806.html 转载请保留说明!

上一篇:JavaScript核心技术之JSON详解(javascript核心技术)

下一篇:【AI】AI 工具合集(ai工具用法)

  • 成都食品包装免费设计_成都食品包装设计公司_成都月饼盒包装设计案例(成都食品包装免检政策)

    成都食品包装免费设计_成都食品包装设计公司_成都月饼盒包装设计案例(成都食品包装免检政策)

  • 华为nova7se指纹解锁在哪呢(华为nova7se指纹解锁在哪里)

    华为nova7se指纹解锁在哪呢(华为nova7se指纹解锁在哪里)

  • 钉钉直播老师可以看到学生分屏吗(钉钉直播老师可以看到我吗)

    钉钉直播老师可以看到学生分屏吗(钉钉直播老师可以看到我吗)

  • ios13.4.1有什么更新(ios13.4.1更新了什么功能)

    ios13.4.1有什么更新(ios13.4.1更新了什么功能)

  • 苹果手机porenhub怎么用(苹果手机打电话怎么录音)

    苹果手机porenhub怎么用(苹果手机打电话怎么录音)

  • 陌陌关注了怎么不能视频(陌陌关注了怎么看不到距离了)

    陌陌关注了怎么不能视频(陌陌关注了怎么看不到距离了)

  • 网易云伴奏模式在哪(网易云开伴奏)

    网易云伴奏模式在哪(网易云开伴奏)

  • 抖音怎么分享链接(抖音怎么分享链接赚佣金)

    抖音怎么分享链接(抖音怎么分享链接赚佣金)

  • 蓝牙耳机怎么调双声道(蓝牙耳机怎么调成中文)

    蓝牙耳机怎么调双声道(蓝牙耳机怎么调成中文)

  • 小米9pro怎么设置屏幕色温(小米9pro怎么设置自动开关机)

    小米9pro怎么设置屏幕色温(小米9pro怎么设置自动开关机)

  • 微信运动35000步有多远(微信步数36000)

    微信运动35000步有多远(微信步数36000)

  • 京东退款审核要多久(京东退款申请一直显示审核中)

    京东退款审核要多久(京东退款申请一直显示审核中)

  • boss直聘冻结多久解封(boss直聘冻结怎么办)

    boss直聘冻结多久解封(boss直聘冻结怎么办)

  • 华为 watch gt2 运动版 时尚版 区别(华为watchgt2运动版功能)

    华为 watch gt2 运动版 时尚版 区别(华为watchgt2运动版功能)

  • 荣耀9x支持nfc么(荣耀9x手机支持nfc功能吗)

    荣耀9x支持nfc么(荣耀9x手机支持nfc功能吗)

  • 微信封8天可以解封吗(微信封八天后还能正常使用吗)

    微信封8天可以解封吗(微信封八天后还能正常使用吗)

  • 中国消防网站域名是什么(中国消防网平台)

    中国消防网站域名是什么(中国消防网平台)

  • 手机自动放歌是怎么回事(手机自动放歌是不是中毒了)

    手机自动放歌是怎么回事(手机自动放歌是不是中毒了)

  • 微信自动播放视频怎么关(微信自动播放视频有记录吗)

    微信自动播放视频怎么关(微信自动播放视频有记录吗)

  • vivos1升降摄像头容易坏吗(vivos1升降摄像头拆卸分解图)

    vivos1升降摄像头容易坏吗(vivos1升降摄像头拆卸分解图)

  • 电脑自动下载软件怎么办(电脑自动下载软件)

    电脑自动下载软件怎么办(电脑自动下载软件)

  • 如何获取文件夹的访问权限(如何获取文件夹下所有文件)

    如何获取文件夹的访问权限(如何获取文件夹下所有文件)

  • Win11右键设计反人类?教你恢复完整右键菜单(windows11右键菜单设置)

    Win11右键设计反人类?教你恢复完整右键菜单(windows11右键菜单设置)

  • iconify图标使用(iconfonf)

    iconify图标使用(iconfonf)

  • 第一次尝试制作一个钓鱼网站,小白教程,超细!(我初次尝试制作的英文怎么写)

    第一次尝试制作一个钓鱼网站,小白教程,超细!(我初次尝试制作的英文怎么写)

  • 【HDLBits刷题日记】06 Basic Gates(vj刷题)

    【HDLBits刷题日记】06 Basic Gates(vj刷题)

  • 协定税率的简称
  • 清算缴纳企业所得税
  • 向银行借入短期借款偿还前欠货款
  • 小规模纳税人购入和销售的增值税
  • 增值税专用发票和普通发票的区别
  • 工程机械租赁增值税税率很多适用错误应该是9不是13
  • 存货跌价准备计提原则
  • 免抵退税办法不得抵扣的进项税额包含了什么业务
  • 2019小规模纳税人免征增值税政策
  • 代人开增值税怎么收费?
  • 收回公司经营权需要做什么
  • 公司办理个人所得税退税
  • 企业线上销售的好处
  • 银行扣除的贴现利息怎么算
  • 自建厂房销售
  • 出口退税附加税什么时候缴纳
  • 免税销售额和免税额区别
  • 什么情形下可以认定为重婚
  • 新办的营业执照多久可以注销
  • 酒店服务行业电费发票怎么开
  • 销售二手车需要注意什么
  • 不计入工资薪金所得的有哪些补贴
  • 报销差旅费抵扣进项税分录
  • 什么样的公司可以交五险一金
  • 非流动负债怎么巧记
  • 个体工商户怎样开发票
  • 怎样获得win11
  • 企业招聘费用计算公式
  • 印花税计税依据及计算方式
  • 农产品抵扣进项税额转出
  • sdi是什么文件
  • 无法设置系统更新的原因
  • 任务管理器无法完成操作拒绝访问
  • 网速变慢了
  • php curl_init
  • 工业企业制造费用核算范围
  • 家属补助每月发多少钱
  • 小企业会计准则调整以前年度费用分录
  • 出口企业要缴纳印花税吗
  • c++~怎么用
  • yii2框架的优缺点
  • php zend原理
  • 小规模纳税人工程税率是多少
  • pytorch教程
  • journal.tmp
  • 微信公众平台官网
  • php array_fill
  • 一定要确认收入的时候才能开票吗
  • java中的static用法
  • php添加
  • 预付卡发票能否抵扣
  • 购买防暑物资应放到哪个科目
  • 投资性房地产转固定资产账务处理
  • 汇算清缴职工教育经费
  • 专票不小心印上划痕
  • 去年城建税多计提了怎么办
  • 建筑工程的税务处理
  • 机动车发票红冲后重新开具
  • 佣金怎样算
  • 两家公司的钱混着用怎么做账
  • 企业安全生产费用可由企业用于购置
  • 会计月末都需要做什么
  • sql语句 时间
  • Cont()与Where().Count()有时性能差别如此之大!
  • Ubuntu安装ssh
  • freebsd windows
  • ubuntu屏幕突然变大
  • Win7如何安装音频设备
  • WIN10更新失败
  • win10升级后怎么还原
  • 用js自定义函数生成表格
  • android实现天气预报
  • python re 查找
  • node.js实战
  • nodejs中向HTTP响应传送进程的输出
  • sdk和安卓版本
  • 又一枚精彩的弹幕效果jQuery实现
  • jquery 获取html
  • 辽宁事业单位职测考试时间多长
  • 中国企业银行可以转账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设