PyQt5 问题集

PyQt5中遇到的一些问题

1、多线程中界面异步刷新

我这里需要给界面动态添加新的控件,但是多线程中似乎并不能直接更新页面?
对于逻辑和界面分离的情况,使用自定义信号的方式进行页面控件的动态添加。注意使用的时候,_trigger 必须是一个类的对象。
如果想调用传入函数,可使用lambda自己定义。

class A(...):
	_trigger = pyqtSignal(object, dict)
	def __init__(self):
		...
		self.window = Window()
		self._trigger.connect(lambda fuc, arg: fuc(arg))  # 调用fuc函数,传参arg
	
	def update(self, my_dict):
		self.window.addWidget(QLaebl(my_dict['name']))
	def my_run():
		...
		self._trigger.emit(self.update, {'name':'1'})

2、保持QProgressBar在最底端

ScrollBar().rangeChanged.connect(lambda :ScrollBar().setValue(ScrollBar().maximum()))

3、QProgressBar在进度条上面显示文字

bar.setFormat('Loading...')  
bar.setAlignment(Qt.AlignCenter)
posted @ 2020-07-23 10:16  KirinSB  阅读(195)  评论(0编辑  收藏  举报