【发布时间】:2020-07-29 09:38:27
【问题描述】:
我正在处理pyqt5 项目,我有login 窗口和registration 窗口。我在login 窗口上有一个按钮,单击该按钮应打开registration 窗口。我在qt desginer 中设计了ui,并使用pyuic 将.ui 文件转换为.py 文件。
所以我有两个文件login_ui.py 和register_window_ui.py。为了使用它们,我还创建了两个单独的文件,即 login.py 和 register.py,其中包含 ui 文件的所有功能代码。
以下是文件代码:
login.py
import sys
import os
from PyQt5 import QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
from ui.login_ui import Ui_login_main_window
from ui.register_window_ui import Ui_register_window
curr_path = os.path.dirname(os.path.abspath(__file__))
class Login(QMainWindow, Ui_login_main_window):
def __init__(self):
QMainWindow.__init__(self)
self.login_ui = Ui_login_main_window()
self.login_ui.setupUi(self)
self.login_ui.register_settings_btn.clicked.connect(self.show_registration_window)
def show_registration_window(self):
self.window = QtWidgets.QMainWindow()
self.ui = Ui_register_window()
self.ui.setupUi(self.window)
self.window.show()
app = QApplication(sys.argv)
main_window = Login()
main_window.show()
sys.exit(app.exec_())
register.py
import sys
import os
from PyQt5.QtWidgets import QApplication, QMainWindow
from ui.register_window_ui import Ui_register_window
curr_path = os.path.dirname(os.path.abspath(__file__))
class Register(QMainWindow, Ui_register_window):
def __init__(self):
QMainWindow.__init__(self)
self.register_win_ui = Ui_register_window()
self.register_win_ui.setupUi(self)
self.register_win_ui.register_trial_btn.clicked.connect(self.print_data)
def print_data(self):
print("Clicked")
app = QApplication(sys.argv)
main_window = Register()
main_window.show()
sys.exit(app.exec_())
如您所见,在login.py 中,我为register_settings_btn 创建了一个按钮单击事件,单击该事件将显示Ui_register_window(),即register_window。因此,当我单击它时,它会向我显示窗口,但该窗口不起作用,即没有发生按钮单击事件。对于register.py 的前任,我创建了一个不起作用的按钮单击事件。
谁能解释一下为什么它不起作用。请帮忙。谢谢
【问题讨论】:
标签: python qt button pyqt5 qapplication