跨平臺(tái)開(kāi)發(fā)工具Qt入門教程:如何使用QWidget?
Qt(發(fā)音為“ cute”,而不是“ cu-tee”)是一個(gè)跨平臺(tái)框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中也非常有用。而且它也可以在三種主要的臺(tái)式機(jī)操作系統(tǒng)以及移動(dòng)操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運(yùn)行。更多Qt產(chǎn)品詳情點(diǎn)擊這里>>
在上文中我們講到如何使用ASP .NET MVC Core應(yīng)用程序創(chuàng)建Web設(shè)計(jì)器示例(點(diǎn)擊此處產(chǎn)看詳情)今天我們主要講如何通過(guò)ASP .NET MVC應(yīng)用程序創(chuàng)建Web設(shè)計(jì)器示例(下)(上篇文章)
子類QWidget
到目前為止,我們已經(jīng)將所有代碼都放入了main函數(shù)中。對(duì)于我們的簡(jiǎn)單示例來(lái)說(shuō),這不是問(wèn)題,但是對(duì)于越來(lái)越復(fù)雜的應(yīng)用程序,我們可能希望將代碼分成不同的類。通常要做的是創(chuàng)建一個(gè)用于顯示窗口的類,并將該窗口中包含的所有小部件實(shí)現(xiàn)為該類的屬性。
在Qt Creator中,您可以通過(guò)File> New file or project> C ++> C ++ Class自動(dòng)創(chuàng)建一個(gè)新類。
使該類從QWidget繼承,您可以獲得類似于下面的代碼
頭文件
#ifndef WINDOW_H #define WINDOW_H #include <QWidget> class Window : public QWidget { Q_OBJECT public: explicit Window(QWidget *parent = 0); signals: public slots: }; #endif // WINDOW_H
源文件
#include "window.h" Window::Window(QWidget *parent) : QWidget(parent) {}
您可以看到Qt Creator自動(dòng)生成一個(gè)類模板。請(qǐng)注意,標(biāo)頭中有一些新元素:
- Q_OBJECT宏。
- 一類新方法:信號(hào)
- 一種新方法:公共插槽
所有這些元素將在下一章中進(jìn)行說(shuō)明,現(xiàn)在不再需要它們。窗口的實(shí)現(xiàn)是在構(gòu)造函數(shù)中完成的。我們可以聲明窗口的大小,以及該窗口包含的小部件及其位置。例如,可以通過(guò)以下方式實(shí)現(xiàn)包含按鈕的上一個(gè)窗口:
main.cpp
#include <QApplication> #include "window.h" int main(int argc, char **argv) { QApplication app (argc, argv); Window window; window.show(); return app.exec(); }
window.h
#ifndef WINDOW_H #define WINDOW_H #include <QWidget> class QPushButton; class Window : public QWidget { public: explicit Window(QWidget *parent = 0); private: QPushButton *m_button; }; #endif // WINDOW_H
window.cpp
#include "window.h" #include <QPushButton> Window::Window(QWidget *parent) : QWidget(parent) { // Set size of the window setFixedSize(100, 50); // Create and position the button m_button = new QPushButton("Hello World", this); m_button->setGeometry(10, 10, 80, 30); }
無(wú)需編寫析構(gòu)函數(shù)來(lái)刪除m_button。在子系統(tǒng)中當(dāng)Window實(shí)例不在堆棧中時(shí),將自動(dòng)刪除m_button。
在接下的文章中我們將講述信息傳輸示例。更多Qt開(kāi)發(fā)工具點(diǎn)擊這里>>