• <menu id="w2i4a"></menu>
  • logo Qt使用教程2020

    文檔首頁(yè)>>Qt使用教程2020>>跨平臺(tái)開(kāi)發(fā)工具Qt入門教程:如何使用QWidget?

    跨平臺(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)擊這里>>

    點(diǎn)擊下載Qt最新試用版

    在上文中我們講到如何使用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)擊這里>>

    如果你對(duì)我們的產(chǎn)品感興趣或者有任何疑問(wèn),歡迎咨詢慧都在線客服>>

    慧都高端UI界面開(kāi)發(fā)
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();