经过几天时间移植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行。
|