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)