这是一个简单的漫画阅读器,我试图加载图像而不冻结主窗口,我试图用线程做这个,但无法将图像发送到主窗口,我做错了什么?如果有其他方式我想知道谢谢,我也是python的新手。
public ActionResult Index(string ImageType = "", int id = 0)
{
using (WWLIS dc = new WWLIS())
{
eventFile item = dc.eventFiles.OrderByDescending(u => u.fileID).ThenByDescending(u => u.branchID).FirstOrDefault();
var base64 = Convert.ToBase64String(item.image);
var imgsrc = string.Format("data:application/pdf;base64,{0}", base64);
if (ImageType != null)
{
ViewBag.ImageSrc = imgsrc;
return PartialView("PDFVIEW");
}
else
{
ViewBag.ImageSrc = imgsrc;
return PartialView("IMAGEVIEW");
}
}
}
答案 0 :(得分:1)
您无法在GUI线程之外创建小部件或像素图。所以只需在工作线程中创建一个QImage
,然后在插槽中创建标签和像素图:
class LoaderThread(QtCore.QThread):
...
def run(self):
liste = os.listdir(self.adres)
order = 0
for i in liste:
image = QtGui.QImage(self.adres + '/' + liste[order])
self.pics.emit(image)
order += 1
class MainWin(QtWidgets.QMainWindow):
...
def add_widget(self, image):
label = QtWidgets.QLabel()
label.setPixmap(QtGui.QPixmap.fromImage(image))
self.verticalLayout.addWidget(label)