qt调用C语言接口函数 c++调用qt

Qt能调用C语言函数吗

能啊 ,头文件注意一下就好了。Qt 就是个 C++ 类库,在 C++ 中怎么使用 C 语言里的东西,在 Qt 中同样。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都做网站、外贸网站建设、深圳网络推广、小程序开发、深圳网络营销、深圳企业策划、深圳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供深圳建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

中国物联网校企联盟技术部

如何在QT中写C函数?

/********MyButton.h*********/

#ifndef MYBUTTON_H_

#define MYBUTTON_H_

#includeiostream

#include QtGui/QPushButton

#include QtGui/QWidget

class MyButton : public QPushButton

{

Q_OBJECT

public:

MyButton(const QString text, QWidget * parent);

~MyButton();

public:

void setLed(int argc, char *argv[]);

public slots:

void sendButtonText();

private:

signals:

void isClickButton(const QString text);

};

#endif

[cpp] view plain copy

/**********MyButton.cpp************/

#include "MyButton.h"

extern "C"{

#include stdio.h

#include stdlib.h

#include unistd.h

#include sys/ioctl.h

#includesys/types.h

#includesys/stat.h

#includefcntl.h

void MyButton::setLed(int argc, char *argv[]){

int on;

int led_number;

int fd;

if (argc != 3 || sscanf(argv[1], "%d", led_number) != 1 || sscanf(argv[2],"%d", on) != 1 ||

on 0 || on 1 || led_number 0 || led_number 3) {

fprintf(stderr, "Usage:\n");

fprintf(stderr, "\t led led_number on|off\n");

fprintf(stderr, "Options:\n");

fprintf(stderr, "\t led_number from 0 to 3\n");

fprintf(stderr, "\t on 1 off 0\n");

exit(1);

}

fd = open("/dev/led", 0);

if (fd 0) {

perror("open device /dev/led");

exit(1);

}

ioctl(fd, on, led_number);

::close(fd); //请注意,此处如果要调用C语言库中的close()一定要加上“::",否则程序将到当前类的作用域中寻找close()方法,导致不明错误。

}

}

MyButton::MyButton(const QString text,QWidget *widget)

:QPushButton(text,widget)

{

connect(this,SIGNAL(clicked()),this,SLOT(sendButtonText()));

}

MyButton::~MyButton()

{

}

void MyButton::sendButtonText(){

emit isClickButton(this-text());

char open_1[]="1";

char open_2[]="1";

char open_3[]="1";

char *o1=open_1;

char *o2=open_2;

char *o3=open_3;

char close_1[]="1";

char close_2[]="1";

char close_3[]="0";

char *c1=close_1;

char *c2=close_2;

char *c3=close_3;

char *open[]={o1,o2,o3};

char *close[]={c1,c2,c3};

QString *str=new QString(this-text());

if((str-compare("mb1"))==0){

std::cout"mb1 is clicked!\n";

setLed(3,open);

}

if((str-compare("mb2"))==0){

std::cout"mb2 is clicked!\n";

setLed(3,close);

}

}

QT与C程序的调用

肯定是3简单啊!qt不就是基于c的语言吗?都谈不上混合编程,普通的c程序用qmake一样编译

QT C++,如何在在一个CPP里直接调用到另一个CPP里的函数

Qt中如果想跨文件调用函数时,只要知道被调函数的声明即可。方法是:在调用之前增加被调函数的声明信息。

例如,在A.cpp中调用B.cpp里面写的void func()函数,需要在A.cpp中增加下面一行:

extern void func(); //声明func是一个外部函数


分享标题:qt调用C语言接口函数 c++调用qt
文章地址:http://ybzwz.com/article/hhihpi.html