qt安装及简单实用

2023-12-21 18:37:53

????????Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

安装参考博客,很详细:

https://blog.csdn.net/YMGogre/article/details/130565726#commentBox

缺少库文件,解决方法 sudo apt install --reinstall libxcb-xinerama0 libxcb-cursor0

安装好进去之后的界面

向导会默认添加一个继承自QMainWindow的类,可以在此修改类的名字和基类。默认的基类有QMainWindow、QWidget以及QDialog三个。

.pro是工程文件,是qmake自动生成的用于生产makefile的配置文件。类似于VS中的.sln 和vsproj文件。

.ui文件,借助开发环境中集成的Qt Designer,我们可以使用鼠标进行可视化编辑。双击这个ui文件即可打开Qt Designer界面

return a.exec();让程序进入Qt的事件循环,也就是窗口一直运行着,等待我们的各种操作,并根据我们在代码中的设定做出响应。

主要用的到的控件,比如:
标签(Label)——> QLabel(PyQt5)
按钮(Button)——> QPushButton
行编辑(lineEdit)——> QLineEdit
组合框(ComboBox)——> QComboBox
复选框(CheckBox)——> QCheckBox

Qt事件

????????无论是什么桌面操作系统,每个进程都有一个全局的事件队列(Event Queue)。当我们在键盘上按了一个键、移动或者点击鼠标、触摸屏幕等等,都会产生一个事件(Event),并由操作系统负责将它扔到进程的事件队列。扔到事件队列后,它会等待以后的某一个时刻发送。分配器(dispatcher )会遍历事件队列,并且将入栈的事件发送到它们的目标对象当中,因此它们被称为事件循环(Event loop)。

????????Qt中是通过运行QCoreApplication::exec()来进入Qt的主体事件循环的;这会引发阻塞,直至QCoreApplication::exit() 或者 QCoreApplication::quit() 被调用,进而结束循环。

Qt 信号和槽的机制

????????信号与槽是Qt特有的的消息传输机制,在Qt中信号与槽用得十分广泛。在编程的过程中,我们都会遇到消息传递的事情,本质上就是发出命令(信号、消息),执行命令(相应的执行)。

  • 信号:当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。
  • 槽:用于接收信号,而且槽只是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。

????????信号槽是设计模式观察者模式的一种实现:

A、一个信号就是一个能够被观察的事件,或者至少是事件已经发生的一种通知;
B、一个槽就是一个观察者,通常就是在被观察的对象发生改变的时候——也可以说是信号发出的时候——被调用的函数;
C、信号与槽的连接,形成一种观察者-被观察者的关系;
D、当事件或者状态发生改变的时候,信号就会被发出;同时,信号发出者有义务调用所有注册的对这个事件(信号)感兴趣的函数(槽)。


信号和槽是多对多的关系。一个信号可以连接多个槽,而一个槽也可以监听多个信号。
?

信号与槽关联是用 QObject::connect() 函数实现的,其基本格式是:

QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));

?

使用xmake创建qt项目

xmake create -t qt.widgetapp xmtest

https://blog.csdn.net/m0_65635427/article/details/130780280

文章来源:https://blog.csdn.net/huaooo1/article/details/135079518
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。