1.一般多线程中点击控件触发新的UI界面一般使用QDialog
进程与线程的区别总结:
本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。
包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
资源开销:每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。
影响关系:一个进程崩溃后,在保护模式下其他进程不会被影响,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程要比多线程健壮。
此处改为Form1=QtWidgets.QWidget()是错误的!
QWidget类继承自QObject类和QpaintDevice类
- QObject是所有支持Qt对象模型的基类
- QPaintDevice是Qt中所有可绘制组件的基类
QWidget能够绘制自己和处理用户的输入
-QWidget是Qt中所有窗口组件类的父类(super class)
-QWidget是所有窗口组件的抽象
-Qt中的每个窗口组件都是一个QWidget
-QWidget类对象长作为父组件或顶级组件使用
对话框是与用户进行简短交互的顶层窗口
-QDialog是Qt中所有对话框窗口的基类
-QDialog继承与QWidget是一种容器类型的组件
QDialog的意义
-QDialog作为一种子不见嵌入其他容器中
-QDialog不能作为子部件嵌入其他容器中
-QDialog是定制了窗口式样的特殊QWidget
程序调用代码
if name == ‘main’:
# 只有直接运行这个脚本,才会往下执行
# 别的脚本文件执行,不会调用这个条件句
# 实例化,传参
app = QApplication(sys.argv)
# 创建对象
mainWindow = QMainWindow()
# 创建ui,引用demo1文件中的Ui_MainWindow类
ui = demo1.Ui_MainWindow()
# 调用Ui_MainWindow类的setupUi,创建初始组件
ui.setupUi(mainWindow)
# 创建窗口
mainWindow.show()
# 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源的一定要释放)
sys.exit(app.exec_())
sizeHint的作用
对于大多数控件来说,sizeHint(期望尺寸)是只可读的,也就是说,你布局的时候不管拖拽多大,最后输出的还是默认值
读取pushButton的期望尺寸:
self.pushButton.sizeHint().width()
self.pushButton.sizeHint().height()
添加热键
快捷键在我们平常中使用十分频繁,下面提供两种设置方式
- 使用 &
在文本前使用&, 自动会设置快捷键为 Alt + 首字母
button = QPushButton("&sign_up", window)
会自动设置快捷键 Alt + S(前提是编辑伙伴关系)
- 使用setShortcut
使用setShortcut可以自定义设置快捷键
button.setShortcut('Alt + N') # 按键 Alt + N 便可触发
窗口类型
PYQT5界面调用其他深度学习的模型的接口方法:
1.单独用一个.py文件用于生成界面(防止更改ui文件更新py导致py文件里自定义的函数丢失)。
2.然后通过main函数调用界面文件,在main文件里单独自定义控制(或触发)函数。