诺基亚Qt的基本概念是什么?

时间:2011-01-28 07:35:02

标签: qt qt4 nokia

诺基亚Qt的基本概念是什么?

在进入诺基亚Qt框架之前,我想知道些什么?

有人可以帮助我吗?

我是诺基亚Qt的新手。 提前谢谢。

2 个答案:

答案 0 :(得分:13)

Qt是一个庞大的框架,具有用于处理GUI,网络,数据库和各种事物的库。记录非常详细,请访问诺基亚网站上的How to Learn Qt。话虽如此,这里有一些基本概念:

  1. Qt是一个框架。这意味着您可以围绕响应事件来组织代码。最重要的是,你没有“主循环”。您的main通常如下所示:

    QApplication app(argc, argv);
    MyMainWindow win;
    
    win.show();
    
    return app.exec();
    
  2. 信号和插槽。 Qt使用信号和插槽的概念以一种彻底解耦的方式连接程序的不同部分。您必须先将信号连接到插槽:

    connect(sender, SIGNAL(theSignal(int)), receiver, SLOT(theSlot(int)));
    

    然后,当sender“发出”信号(例如,使用emit theSignal(0))时,Qt会安排调用receiver->theSlot(0)。这种安排是通过“元对象编译器”实现的,这是一个单独的程序,它生成您编译并链接到程序中的代码。

    Qt使用信号和插槽来响应GUI事件。因此,当您在用户单击“文件 - >打开”菜单项时确定您的程序需要执行的操作时,您可以编写一个插槽。 Qt使用元对象编译器(moc)预处理代码并在幕后生成大量机器,以确保此插槽可以连接到信号。在MyMainWindow的标题中,您将有类似的内容:

    class MyMainWindow : public QMainWindow
    {
         Q_OBJECT
      public:
         MyMainWindow();
      public slots:
         void on_fileOpen_activated();
      signals:
         void mySignal(int n);
    };
    

    Q_OBJECT宏是moc识别班级并为您生成所有机器所必需的。就代码而言,插槽只是一种常规方法。它可以是公共的,受保护的或私有的。它可以正常调用。唯一的区别是您可以使用connect将信号连接到它。

    信号是另一回事。 moc会为您实现所有信号,因此,继续上述示例,MyMainWindow.cpp将不包含mySignal的定义。

  3. Qt是一个非常大的框架,您可以轻松地只使用您需要的部分。慢点来。不要担心高级功能,或者看起来太难的事情。弄清楚你想做什么,然后尝试做到这一点。在线搜索。 Qt有一些最广泛的文档。祝你好运!

答案 1 :(得分:4)

只要您了解面向对象编程,您就会非常了解入门。来自Qt的C ++对象的主要补充是信号和插槽。如果您阅读文档,它们将很快开始有用。