qt可以调用c语言函数吗,c语言和qt

请大虾们解答一下,在QT中我能使用c语言的printf函数吗?如何使用?谢谢

能使用是能使用,但是我在使用的时候很奇怪,在程序运行完成之后才把所有printf的语句打印出来。一般在qt中都使用qDebug。

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

Qt能调用C语言函数吗

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

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

如何在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语言函数吗,c语言和qt
URL网址:http://myzitong.com/article/hegish.html