导航:首页 > 编程语言 > c语言图形编程qt

c语言图形编程qt

发布时间:2023-06-16 10:17:15

⑴ 本人刚开始学习QT,有一些C语言基础,了解一点点C++,以下是一个QT例子,其中有很多语言不懂,望高人指点~

Ticker(QWidget *parent = 0);//为什么在括号内要有(QWidget *parent = 0)?
这是构造函数的参数。C++可以使用默认参数。其实写成iQWidget *parent = NULL;就是没有父窗口,就更容易理解了。

void paintEvent(QPaintEvent *event);//(QPaintEvent *event)又是什么意思?定义了event一个指针?如果说定义一个event指针那为什么下面三句又定义了event指针?
你这么问,应该是基础不好,C/C++的参数名是任意的,只要符合语法要求就可以,因此是可以相同的,这个只是函数的参数,而不是定义变量。三个event指针,是三个不同类型的事件指针,是三个函数的参数,不是定义变量。

Ticker::Ticker(QWidget *parent) : QWidget(parent)//前一个ticker指的是类,第二个ticker是成员函数还是?,那后面的两个括号内指的是什么?
第二个是构造函数,Ticker(QWidget *parent)是构造函数,QWidget *parent是构造函数的参数;
: QWidget(parent)是初始化列表的格式,你可以搜索一下 初始化列表 来查一下更具体的内容。

void Ticker::showEvent(QShowEvent * /* event */)//定义类和成员函数?括号内又是干什么的?是否可以将QShowEvent *换成QShowEvent * event ?
可以,函数定义的时候,是可以写参数,也可以不写,只简写参数的类型。

QWidget::timerEvent(event);//调用类和成员函数?括号内event怎么又没有*号了?
感觉你的基础真的不好,函数定义的时候,参数是要写类型的,所以那个*是表示指针类型。
而函数调用的时候,参数是指针类型的,就可以直接使用啊。如果不是指针,就用取地址符号(&)转成地址(指针就是地址)。
void paintEvent(QPaintEvent *event);//这样是定义,其实这么写更好一些
void paintEvent( QPaintEvent * event);//这个函数的参数是event,event的类型是QPaintEvent * 。感觉你的理解是这个函数的参数时 * event,而参数类型是QPaintEvent ,那样就错了。不知道你明白没有。

给你一些建议,因为你的基础看起来不是很好,建议看看谭浩强的《C++程序设计》等你完全理解这些问题了,再看看钱能的《C++程序设计》。再看国外的经典书。基础很重要,很重要。

⑵ 如何用vs2015编写c语言 写qt

选常规启动,然后文件新建项目里面如果你是初学C肯定是写控制台程序,就选控制台,然后在新建文档就可以选c语言或者别的了。

linux C语言编程gcc和qt学哪个好

gcc是一个编译器,qt是一个界面编程工具,两者是不能比的。

linux下编译c程序必然要用到gcc编译器,而qt则是用来开发界面程序的,类似windows下微软的mfc,你要在linux下写程序,必然的要会使用gcc对你的程序进行编译,至于qt只是个基于C++的界面程序开发工具,觉得以后用到就学一下,用不到就算了。

我在和你说一遍,gcc只是一个编译器。
你的意思是linux下的c/c++集成开发环境吧,anjuta,eclipse等等都可以,但他们只是提供了开发环境,编译器还是用的gcc。

⑷ C语言程序怎么用QT编写图形界面

qt代码都是c++的。先用qt把界面画出来。然后在qt的事件处理函数 qt里用信号槽。吧c socket和mysql的代码加进去就可以了。

⑸ C语言开发安装Qt

首先qt不是一门语言,而是c++的一组类库,当然不只是类库。
qt-creator-opensource-windows-x86-3.5.0.exe 相当于notepad,高级一点的富文本编辑器;

qt-opensource-windows-x86-mingw492-5.5.0.exe qt + mingw那一套,也就是一键安装之后同时拥有了qt,g++,gdb,qt creator就是不用做什么配置直接用了。

qt-opensource-windows-x86-msvc2013_64-5.5.0.exe 如果你已经熟悉了vs2013,你装了这个就可以用vs2013来开发qt项目。好像以前那个2010的版本是搞不起事的,慎装。

qt-vs-addin-1.2.4-opensource.exe 骗你的,仅仅安装上面那个是不够的,你需要安装这个并做一些配置才可以。

总的来说,ide包括以下几个方面:
富文本编辑器(qt creator),一个类库及其实现(qt),编译器(g++,ms),调试器(gdb,ms)组成的,高手嘛想怎么搭就怎么搭。像我们这种小白,一键傻瓜安装(第二个)就可以了,包治百病。

⑹ C语言图形界面怎么做出来

这是最简单的界面程序://c++.cpp:定义应用程序的入口点。

//

#include"stdafx.h"

#include"c++.h"

#defineMAX_LOADSTRING100

//全局变量:

HINSTANCEhInst; //当前实例

TCHARszTitle[MAX_LOADSTRING]; //标题栏文本

TCHARszWindowClass[MAX_LOADSTRING]; //主窗口类名

//此代码模块中包含的函数的前向声明:

ATOM MyRegisterClass(HINSTANCEhInstance);

BOOL InitInstance(HINSTANCE,int);

LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);

intAPIENTRY_tWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPTSTRlpCmdLine,

intnCmdShow)

{

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

//TODO:在此放置代码。

MSGmsg;

HACCELhAccelTable;

//初始化全局字符串

LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);

LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);

MyRegisterClass(hInstance);

//执行应用程序初始化:

if(!InitInstance(hInstance,nCmdShow))

{

returnFALSE;

}

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));

//主消息循环:

while(GetMessage(&msg,NULL,0,0))

{

if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return(int)msg.wParam;

}

//

//函数:MyRegisterClass()

//

//目的:注册窗口类。

//

//注释:

//

//仅当希望

//此代码与添加到Windows95中的“RegisterClassEx”

//函数之前的Win32系统兼容时,才需要此函数及其用法。调用此函数十分重要,

//这样应用程序就可以获得关联的

//“格式正确的”小图标。

//

ATOMMyRegisterClass(HINSTANCEhInstance)

{

WNDCLASSEXwcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style =CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc =WndProc;

wcex.cbClsExtra =0;

wcex.cbWndExtra =0;

wcex.hInstance =hInstance;

wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));

wcex.hCursor =LoadCursor(NULL,IDC_ARROW);

wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);

wcex.lpszMenuName =MAKEINTRESOURCE(IDC_C);

wcex.lpszClassName =szWindowClass;

wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));

returnRegisterClassEx(&wcex);

}

//

//函数:InitInstance(HINSTANCE,int)

//

//目的:保存实例句柄并创建主窗口

//

//注释:

//

//在此函数中,我们在全局变量中保存实例句柄并

//创建和显示主程序窗口。

//

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

{

HWNDhWnd;

hInst=hInstance;//将实例句柄存储在全局变量中

hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);

if(!hWnd)

{

returnFALSE;

}

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

}

//

//函数:WndProc(HWND,UINT,WPARAM,LPARAM)

//

//目的:处理主窗口的消息。

//

//WM_COMMAND -处理应用程序菜单

//WM_PAINT -绘制主窗口

//WM_DESTROY -发送退出消息并返回

//

//

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

switch(message)

{

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//分析菜单选择:

switch(wmId)

{

caseIDM_ABOUT:

DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);

break;

caseIDM_EXIT:

DestroyWindow(hWnd);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

break;

caseWM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//TODO:在此添加任意绘图代码...

EndPaint(hWnd,&ps);

break;

caseWM_DESTROY:

PostQuitMessage(0);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

return0;

}

//“关于”框的消息处理程序。

INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)

{

UNREFERENCED_PARAMETER(lParam);

switch(message)

{

caseWM_INITDIALOG:

return(INT_PTR)TRUE;

caseWM_COMMAND:

if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)

{

EndDialog(hDlg,LOWORD(wParam));

return(INT_PTR)TRUE;

}

break;

}

return(INT_PTR)FALSE;

}

阅读全文

与c语言图形编程qt相关的资料

热点内容
我的世界如何屏蔽别人服务器 浏览:907
单片机烧录员 浏览:970
美国数据服务器可以部署什么业务 浏览:973
如何卸载服务器中的ie 浏览:42
单片机必须学编程吗 浏览:153
如何判断是否与服务器连接数据库 浏览:740
吃甜食会缓解压力嘛 浏览:317
pdf魔鬼 浏览:29
二维数组递归解决算法问题 浏览:382
java反射例子 浏览:670
惠普笔记本自带解压软件 浏览:840
抖音视频后台压缩 浏览:707
app里的视频广告从哪里接的 浏览:556
天翼云服务器跟腾讯云 浏览:618
cyk算法实现 浏览:191
大潘号app在哪里可以下载 浏览:109
怎么做解压豌豆捏捏乐 浏览:618
安卓手机怎么调成苹果表情 浏览:755
android蓝牙声音 浏览:850
横盘震荡选股公式源码 浏览:589