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

sel*_*rai 0 qt nokia qt4

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

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

任何人都可以帮助我吗?

诺基亚Qt我是新手.提前致谢.

Dan*_*her 13

Qt是一个庞大的框架,具有用于处理GUI,网络,数据库和各种事物的库.它有很好的文档记录,所以请看看如何在诺基亚网站上学习Qt.话虽如此,这里有一些基本概念:

  1. Qt是一个框架. 这意味着您可以围绕响应事件来组织代码.最重要的是,你没有"主循环".你main通常看起来像这样:

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

    connect(sender, SIGNAL(theSignal(int)), receiver, SLOT(theSlot(int)));
    
    Run Code Online (Sandbox Code Playgroud)

    然后,当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);
    };
    
    Run Code Online (Sandbox Code Playgroud)

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

    信号是另一回事.在moc实现所有的信号,为你的,所以,继续上面的例子中,MyMainWindow.cpp将不包括的定义 mySignal.

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