1. 安装软件包
pip install PyQt5
pip install pyqt5-tools
2. 安装Qtdesigner
sudo apt-get install qt5-default qttools5-dev-tools
sudo apt-get install qt5-default qtcreator
3.pycharm中配置 external tools
4. Tools - external tools 打开 Qtdesigner
5.设计完成后转换为py文件
pyuic5 -o hsi.py hsi.ui
6.运行获得的py文件就会出现设计的界面了
用到的语句总结
str1 = ui.textEdit.toPlainText()
ui.textEdit_2.setText(str1)
str='要显示的字符串'
self.textEdit_2.append(str)
self.pushButton_2.setText(_translate("MainWindow", "浏览"))
self.pushButton_2.clicked.connect(lambda: self.whichbtn(self.pushButton_2))
self.pushButton_2.clicked.connect(self.btnstate)
def btnstate(self):
if self.pushButton_2.isChecked():
print('button pressed')
else:
print('button released')
def whichbtn(self, btn):
print('clicked button is ' + self.pushButton_2.text())
QPlainTextEdit.setPlainText()
QPlainTextEdit.insertPlainText()
QPlainTextEdit.appendPlainText()
1. 选取文件夹 QFileDialog.getExistingDirectory()
2. 选择文件 QFileDialog.getOpenFileName()
3. 选择多个文件 QFileDialog.getOpenFileNames()
4. 选择保存文件 QFileDialog.getSaveFileName()
多线程
- 多线程-在单个程序中同时运行多个不同的线程完成不同的工作,称为多线程
- 线程-轻量级进程,指正在执行程序的最小单元,一个进程当中至少必须有一个线程(主线程),在程序中,线程是独立的,可运行的流
- 每个线程有自己的堆栈,自己的程序计数器,自在相同己的局部变量,体现了线程的独立性
- 在相同的父进程下的所有线成共享进程内所有资源,可以实现线程间的消息互通
- 多个线程之间可以并发执行,互不影响
创建方式
- _thread
- threading
使用threading 模块的Thread类的构造器创建新的线程
继承threading 模块的Thread类创建线程类
示例1
import threading
def loop(x):
print('thread {} is running...'.format(threading.current_thread().name))
for i in range(x):
print('thread {} >>> {}'.format(threading.current_thread().name,i))
if __name__=='__main__':
print('thread {} is running...'.format(threading.current_thread().name))
t = threading.Thread(target=loop,args=(10,))
t.start()
示例2
import threading
class MyThread (threading.Thread):
def run(self):
print('thread {} is running...'.format(threading.current_thread().name))
for i in range(10):
print('thread {} >>> {}'.format(threading.current_thread().name,i))
if __name__=='__main__':
print('thread {} is running...'.format(threading.current_thread().name))
t=MyThread()
t.run()
print('运行结束')
两个子线程示例
阻塞主线程
t1.join()
t2.join()
主线程结束后立即结束守护线程
t1.SetDaemon(daemonic=True)
t2.SetDaemon(daemonic=True)
pyqt多进程 QThraed
- 定义子进程的功能
class WorkThread(QThread):
def __int__(self):
super(WorkThread, self).__init__()
def run(self):
while 1:
time.sleep(1)
print('123')
- 创建实例, 打开子进程
self.workThread = WorkThread()
self.workThread.start()
警告: 在类内定义实例时一定要加self, 不然当函数结束后,它的生命周期也都结束了,但是这个线程里的程序很有可能还没有运行完,所以会报错
QThread:Destroyed while thread is still running
传递消息的例子
定义
class WorkThread(QThread):
trigger = pyqtSignal(str)
def __int__(self):
super(WorkThread, self).__init__()
def run(self):
ui.data_utils()
调用
self.workThread = WorkThread()
self.workThread.start()
self.workThread.trigger.connect(self.print_in_textEdit)
def print_in_textEdit(self, msg):
self.plainTextEdit.appendPlainText(msg)
self.workThread.exit()
keras 保存模型结构
from tensorflow.keras.utils import plot_model
import pydotplus
plot_model(lstm_test_model,to_file='lstm_test_model.png',show_shapes=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)