import sys
from PyQt4 import QtCore, QtGui, uic
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.Dynamic_log = uic.loadUi("Dynamic_log.ui")
self.Dynamic_log.show()
self.Main_Window = uic.loadUi("Main_Window.ui")
self.Main_Window.hide()
self.Dynamic_log.Continue_Button.clicked.connect(self.Continue2)
def Continue2(self):
***self.Main_Window.addWidget(self.progress_label)***
self.Main_Window.show()
self.Dynamic_log.hide()
app = QtGui.QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
三重星号是我被卡住的地方。这行代码解释了我想要实现的内容,但却返回了错误。我想使用这种方法加载.ui文件,然后仍然可以在 Main_Window 之后添加更多工具,进度条,标签按钮等。
我希望.ui文件以这种方式加载,以便更容易布局和进行更改
我之后需要添加自定义工具的原因是因为我打算运行线程,数量由用户自行决定,并且必须使用重复的工具来匹配线程数。
答案 0 :(得分:0)
在没有运气的情况下寻找答案后,我自己解决了这个问题。
在pyqt4 Designer文件(Main_Window)中创建QVBoxLayout之后,我就能够以不使用uic.loadUi导入方法的方式引用它(在这种情况下参考其名称为ProgressThreads)。
工作代码如下,
class MyWindow(QWidget):
def __init__(self, *args):
QWidget.__init__(self, *args)
self.Dynamic_log = uic.loadUi("Dynamic_log.ui")
self.Dynamic_log.show()
self.Main_Window = uic.loadUi("Main_Window.ui")
self.Main_Window.hide()
layout = self.Main_Window.ProgressThreads
self.progress_label = QLabel(" ")
layout.addWidget(self.progress_label)
self.progress_label.setText('0%')
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
从QMainWindow更改为QWidget
也很有必要