導航:首頁 > 編程語言 > 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