QT框架中的不同组件如何相互作用?

QT框架中的不同组件如何相互作用?,qt,qt5,desktop,Qt,Qt5,Desktop,我正在自学如何编码,并试图开发一个小型桌面应用程序。我选择QT作为这个框架。我不明白下面的代码。“应用程序”和“按钮”对象之间没有关系。“按钮”对象如何成为“应用程序”事件循环的一部分 #include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv);

我正在自学如何编码,并试图开发一个小型桌面应用程序。我选择QT作为这个框架。我不明白下面的代码。“应用程序”和“按钮”对象之间没有关系。“按钮”对象如何成为“应用程序”事件循环的一部分

    #include <QApplication>
    #include <QPushButton>

    int main(int argc, char **argv)
    {
         QApplication app (argc, argv);

         QPushButton button ("Hello world !");
         button.show();

         return app.exec();
    }
#包括
#包括
int main(int argc,字符**argv)
{
QApplication应用程序(argc、argv);
QPushButton按钮(“你好,世界!”);
按钮。显示();
返回app.exec();
}

你明白什么是eventloop吗?@eyllanesc我认为程序控件处于一个循环中,等待事件发生。基于这些事件,它会触发某些动作的发生。那么,答案就是:事件循环通过信号被通知它处理的事件(例如,点击),事件循环调用与该信号关联的插槽。但是app.exec()如何知道按钮的存在。应用程序和按钮不是在两个独立的变量中定义的两个独立的东西吗?它们是两个相互作用的独立变量,QApplication处理QWidget树(如QPushButton),因为不仅QWidget向eventloop发送信息,而且eventloop也向其发送信息。例如,当你点击按钮时,你实际上点击了窗口,然后操作系统通知eventloop,eventloop根据一些逻辑分析哪些小部件受到影响并将事件发送给它。