调用 class 在 python 中启动 UI class
Calling class that initiates UI class in python
我在创建小型 Python 项目时遇到问题。我已经习惯了Java,这对我来说还是很陌生。
问题是我从 QtCreator 创建了一个 UI class。然后将其转换为 .py
并导入到我的项目中。我有一个 class,目前被认为是 main
启动,运行 是 UI class。问题是我需要一个 class,它实际上是 main
class,当应用程序启动时,这个 class 调用第二个 class 来启动UI。
现在总结一下,当应用程序启动时,我有 A > calls > B(UI)
。
我需要它是 A > calls > B > init > C(UI)
。
那可能吗?我的想法是 B 必须只是设置 UI 和 运行 的经理 class。
到目前为止,这是我的工作代码:
1.Manager class-
class mainpanelManager(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = mainpanelManager()
window.show()
sys.exit(app.exec_())
和UIclass是典型的UI生成class。我将 post 只有构造函数:
class Ui_MainWindow(QtGui.QWindow):
def setupUi(self, MainWindow):
在这种情况下 mainpaneManager
运行s Ui_MainWindow
在元素启动之后。
我想要一个调用 mainpanelManager
的第三个 class。
我要用这个 __name__
函数做什么?移动它?
提前致谢!
我不确定我是否理解您的要求,但它似乎就这么简单:
class Main(object):
def __init__(self):
self.window = MainPanelManager()
self.window.show()
class MainPanelManager(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.settingsButton.clicked.connect(self.editSettings)
self.loadSettings()
def editSettings(self):
dialog = SettingsDialog(self)
if dialog.exec_() == QtWidgets.QDialog.Accepted:
self.loadSettings()
def loadSettings(self):
# do stuff to load settings...
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main = Main()
sys.exit(app.exec_())
我在创建小型 Python 项目时遇到问题。我已经习惯了Java,这对我来说还是很陌生。
问题是我从 QtCreator 创建了一个 UI class。然后将其转换为 .py
并导入到我的项目中。我有一个 class,目前被认为是 main
启动,运行 是 UI class。问题是我需要一个 class,它实际上是 main
class,当应用程序启动时,这个 class 调用第二个 class 来启动UI。
现在总结一下,当应用程序启动时,我有 A > calls > B(UI)
。
我需要它是 A > calls > B > init > C(UI)
。
那可能吗?我的想法是 B 必须只是设置 UI 和 运行 的经理 class。
到目前为止,这是我的工作代码:
1.Manager class-
class mainpanelManager(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = mainpanelManager()
window.show()
sys.exit(app.exec_())
和UIclass是典型的UI生成class。我将 post 只有构造函数:
class Ui_MainWindow(QtGui.QWindow):
def setupUi(self, MainWindow):
在这种情况下 mainpaneManager
运行s Ui_MainWindow
在元素启动之后。
我想要一个调用 mainpanelManager
的第三个 class。
我要用这个 __name__
函数做什么?移动它?
提前致谢!
我不确定我是否理解您的要求,但它似乎就这么简单:
class Main(object):
def __init__(self):
self.window = MainPanelManager()
self.window.show()
class MainPanelManager(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.settingsButton.clicked.connect(self.editSettings)
self.loadSettings()
def editSettings(self):
dialog = SettingsDialog(self)
if dialog.exec_() == QtWidgets.QDialog.Accepted:
self.loadSettings()
def loadSettings(self):
# do stuff to load settings...
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main = Main()
sys.exit(app.exec_())