經過幾天時間移植Qt4和Yaffs文件系統后,終于在ARM9的開發板上的Linux 2.6.30.4內核中成功運行Qt4,并且親身編寫了第一個Qt4應用程序。我以后就在Qt上發展了,當然一些底層驅動編寫的還要繼續學習,不然以后的機器人就難做了。
照片名稱:IMG_2649 所屬相冊:YYQ個人工作室 點擊“Well done!”按鈕,會自動在上面的文本編輯框中插入“Thanks <br />” 照片名稱:IMG_2650 所屬相冊:YYQ個人工作室 Qt的信號槽。是Qt與其他編程工具區分開來的標志呢。。我剛開始有點搞不懂,看到拉出來的有電路中的接地符號,以為真是電路設計,其實不是的,是把信號連接到本窗口上。
在寫槽響應代碼時,摸了半天,因為這有點像MFC,但又和它的區別非常大。 剛開始通過閱讀自動生成的代碼,硬是找不到哪個變量是存儲窗口上的所有對象的,換句話說窗口上的某個對象如TextEdit文本編輯框,它的實例或指針在哪。如果我找不到這個,就無法對這個對象進行如插入“Thanks”的操作。總覺得缺少點什么。
在我不停地百度百度以及反復看Qt Creator的界面后,終于發現了一個“重大秘密” 某位網友的博客上明確寫出了
這么一句話。
取消默認勾選的第二個“Hide Generated files”勾后,我看到了ui文件的頭文件。這下好找了,心中的缺陷也補全了。
class Ui_MainWindow
{
public:
QWidget *centralWidget;
QTextEdit *textEdit;
QPushButton *pushButton;
QPushButton *pushButton_2;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
QToolBar *toolBar;
………………
在這個文件里面,我看到了這些對象的聲明,才知道他們是怎么存在代碼上的了。于是順藤摸瓜,在mainwindow的頭文件中以及繼承過來的MainWindow的類的構造函數中,最終確定了:在MainWindow類中的私有成員“ui”這個類包含了窗口上所有對象的指針。
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
最后就像我所說的,在響應函數中,因為是MainWindow的一員,所以它可以調用私有成員變量ui。所以就通過ui來找出文本編輯框的指針,進而調用文本編輯框這個類里的函數insertHtml()來實現插入一段文字。如我的代碼中的第23行。
|