標(biāo)題: ARM9的嵌入式開(kāi)發(fā)—踏入Qt4開(kāi)發(fā) [打印本頁(yè)]

作者: liumei    時(shí)間: 2014-4-30 16:40
標(biāo)題: ARM9的嵌入式開(kāi)發(fā)—踏入Qt4開(kāi)發(fā)
經(jīng)過(guò)幾天時(shí)間移植Qt4和Yaffs文件系統(tǒng)后,終于在ARM9的開(kāi)發(fā)板上的Linux 2.6.30.4內(nèi)核中成功運(yùn)行Qt4,并且親身編寫(xiě)了第一個(gè)Qt4應(yīng)用程序。我以后就在Qt上發(fā)展了,當(dāng)然一些底層驅(qū)動(dòng)編寫(xiě)的還要繼續(xù)學(xué)習(xí),不然以后的機(jī)器人就難做了。

照片名稱:IMG_2649
所屬相冊(cè):YYQ個(gè)人工作室
點(diǎn)擊“Well done!”按鈕,會(huì)自動(dòng)在上面的文本編輯框中插入“Thanks <br />”
照片名稱:IMG_2650
所屬相冊(cè):YYQ個(gè)人工作室
Qt的信號(hào)槽。是Qt與其他編程工具區(qū)分開(kāi)來(lái)的標(biāo)志呢。。我剛開(kāi)始有點(diǎn)搞不懂,看到拉出來(lái)的有電路中的接地符號(hào),以為真是電路設(shè)計(jì),其實(shí)不是的,是把信號(hào)連接到本窗口上。



在寫(xiě)槽響應(yīng)代碼時(shí),摸了半天,因?yàn)檫@有點(diǎn)像MFC,但又和它的區(qū)別非常大。
剛開(kāi)始通過(guò)閱讀自動(dòng)生成的代碼,硬是找不到哪個(gè)變量是存儲(chǔ)窗口上的所有對(duì)象的,換句話說(shuō)窗口上的某個(gè)對(duì)象如TextEdit文本編輯框,它的實(shí)例或指針在哪。如果我找不到這個(gè),就無(wú)法對(duì)這個(gè)對(duì)象進(jìn)行如插入“Thanks”的操作�?傆X(jué)得缺少點(diǎn)什么。

在我不停地百度百度以及反復(fù)看Qt Creator的界面后,終于發(fā)現(xiàn)了一個(gè)“重大秘密”
某位網(wǎng)友的博客上明確寫(xiě)出了

這么一句話。

取消默認(rèn)勾選的第二個(gè)“Hide Generated files”勾后,我看到了ui文件的頭文件。這下好找了,心中的缺陷也補(bǔ)全了。

class Ui_MainWindow
{
public:
    QWidget *centralWidget;
    QTextEdit *textEdit;
    QPushButton *pushButton;
    QPushButton *pushButton_2;
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QStatusBar *statusBar;
    QToolBar *toolBar;
………………

在這個(gè)文件里面,我看到了這些對(duì)象的聲明,才知道他們是怎么存在代碼上的了。于是順藤摸瓜,在mainwindow的頭文件中以及繼承過(guò)來(lái)的MainWindow的類的構(gòu)造函數(shù)中,最終確定了:在MainWindow類中的私有成員“ui”這個(gè)類包含了窗口上所有對(duì)象的指針。

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

最后就像我所說(shuō)的,在響應(yīng)函數(shù)中,因?yàn)槭荕ainWindow的一員,所以它可以調(diào)用私有成員變量ui。所以就通過(guò)ui來(lái)找出文本編輯框的指針,進(jìn)而調(diào)用文本編輯框這個(gè)類里的函數(shù)insertHtml()來(lái)實(shí)現(xiàn)插入一段文字。如我的代碼中的第23行。




作者: 未來(lái)的技術(shù)女    時(shí)間: 2018-11-20 21:02
樓主,我的程序只能在ubuntu下面跑,不能移植到arm,file 我的可執(zhí)行文件是x86_64的,不是arm的,這是為什么,高了快兩周了,qt環(huán)境還沒(méi)有配好




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1