文章目录
前言
这段时间项目实训的主要工作:解决了一些遇到的问题,并为基于神经网络进行图片风格迁移的功能做了部分优化。
一. 所遇问题及解决方法
1. 找不到自定义的module
当自己建立了一些文件夹,并在其中添加了_init_.py文件时,有时会出现如下报错。
当想要通过from xx import xxxx 时,可能出现找不到 xx 的情况。
首先尝试修改configuration。
若该方法不起作用,建议新建一个project并将原本的全部文件夹及文件拷贝到新的project当中,以解决找不到module的报错。
2. exit with 0 但是没有窗口弹出
代码本身没有报错,但是没有编写的UI出现。
建议检查configuration,看运行的文件是否为 main 文件。
二. signal 功能用于 set training epoch
1. 定义新的label与slider
代码如下:
#创建一个另学习轮数变化的label和slider
instance.part3_slider_value = QLabel(instance.widget_neural_style_transfer)
instance.part3_slider_value.setGeometry(30,120,200,100)
instance.part3_slider_value.setText("风格迁移度")
instance.slider_part3 = QSlider(Qt.Horizontal, instance.widget_neural_style_transfer)
instance.slider_part3.setGeometry(30, 200, 100, 30)
instance.slider_part3.sliderReleased.connect(instance.signal_slider_set_epoch)
# 为滑动条设置最小最大值,初始值等属性
instance.slider_part3.setMinimum(5)
instance.slider_part3.setMaximum(100)
instance.slider_part3.setSingleStep(5)
instance.slider_part3.setValue(50)
2. 定义信号signal
注意:signal必须定义在函数外面,把它当成一个类成员变量,在函数内引用时加slef.xx
代码如下:
signal_part3_slider = pyqtSignal('PyQt_PyObject',int)
3. 定义信号被发射后的执行函数
新建 py 文件,在文件中定义执行函数
代码如下:
def part3_epoch(instance,value):
instance.part3_slider_value.setText("风格迁移度:" + str(value))
instance.part3_epoch = value
4. 定义信号发射函数
代码如下:
#slider设置训练轮数
def signal_slider_set_epoch(self):
part3_tem_value = self.sender().value()
self.signal_part3_slider.emit(self,part3_tem_value)
5. 将信号和执行函数连接
代码如下:
#将slider信号与函数进行连接
instance.signal_part3_slider.connect(define_epoch.part3_epoch)
6. 当事件被触发时执行信号发射函数
代码如下:
instance.slider_part3.sliderReleased.connect(instance.signal_slider_set_epoch)
三. 仍存在的问题
完成以上内容之后,界面中可出现 label 与 slider,并且滑动之后,label 的 text 也会变化。
但是选择图片之后会发生如下报错:
Process finished with exit code -1073740791 (0xC0000409)
解决方法仍在尝试中。