各位大神,求问pyqt5如何实现点击一个按钮跳出另一个窗口?

Elvirajia 2015-01-05 11:33:13
研究好久了,都没有具体的,,可不可以给我个例子,我之前写过C++ QT,用到信号与槽,可是pyqt5不会啊……………………
...全文
16666 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChasonF 2018-06-08
  • 打赏
  • 举报
回复
求问各位大神PYQT5窗口跳转怎么设置延时!急求!在线等!
andylixiaob 2017-09-11
  • 打赏
  • 举报
回复
1. haoN.exec_()请去掉或改为注释 2.第二个窗口实例化后,赋给成员变量。 haoN=Ui_nihao() haoN.show() 改为 self.haoN=Ui_nihao() self.haoN.show() 修改后代码如下,建议一个窗口一个py文件。方便调用。且逻辑清楚。 # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'tiaozhuan.ui' # # Created by: PyQt5 UI code generator 5.5.1 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * #from haoP import Ui_nihao #第二界面 class Ui_nihao(QtWidgets.QWidget): def __init__(self): super(Ui_nihao,self).__init__() self.setObjectName("nihao") self.resize(400, 300) self.setWindowTitle("消息") self.label = QtWidgets.QLabel(self) self.label.setGeometry(QtCore.QRect(100, 80, 181, 91)) font = QtGui.QFont() font.setPointSize(55) self.label.setFont(font) self.label.setObjectName("label") self.label.setText("你好!") #第一界面 class Ui_PageB(QtWidgets.QWidget): def __init__(self): super(Ui_PageB,self).__init__() self.setObjectName("nihao") self.resize(400, 300) self.setWindowTitle("消息") self.changeP = QtWidgets.QPushButton(self) self.changeP.setGeometry(QtCore.QRect(100, 100, 181, 71)) self.changeP.setObjectName("changeP") self.changeP.setText("跳转") self.changeP.clicked.connect(self.haoPa) def haoPa(self): self.haoN=Ui_nihao() self.haoN.show() print ("@@@@@@@@@@@@@@@@@@@@@@@@@") #self.haoN.exec_() if __name__ == "__main__": import sys app = QApplication(sys.argv) widget = Ui_PageB() widget.show() sys.exit(app.exec_())
heygotcha 2017-09-10
  • 打赏
  • 举报
回复
引用 2 楼 u011143705 的回复:
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'tiaozhuan.ui' # # Created by: PyQt5 UI code generator 5.5.1 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * #from haoP import Ui_nihao #第二界面 class Ui_nihao(QtWidgets.QWidget): def __init__(self): super(Ui_nihao,self).__init__() self.setObjectName("nihao") self.resize(400, 300) self.setWindowTitle("消息") self.label = QtWidgets.QLabel(self) self.label.setGeometry(QtCore.QRect(100, 80, 181, 91)) font = QtGui.QFont() font.setPointSize(55) self.label.setFont(font) self.label.setObjectName("label") self.label.setText("你好!") #第一界面 class Ui_PageB(QtWidgets.QWidget): def __init__(self): super(Ui_PageB,self).__init__() self.setObjectName("nihao") self.resize(400, 300) self.setWindowTitle("消息") self.changeP = QtWidgets.QPushButton(self) self.changeP.setGeometry(QtCore.QRect(100, 100, 181, 71)) self.changeP.setObjectName("changeP") self.changeP.setText("跳转") self.changeP.clicked.connect(self.haoPa) def haoPa(self): haoN=Ui_nihao() haoN.show() print ("@@@@@@@@@@@@@@@@@@@@@@@@@") haoN.exec_() if __name__ == "__main__": import sys app = QApplication(sys.argv) widget = Ui_PageB() widget.show() sys.exit(app.exec_()) 为什么点击按钮的时候报停止工作啊? 有知道怎么回事吗?
haoN=Ui_nihao()即新窗口的这个实例化要放在if __name__ == "__main__":里
u011143705 2016-01-29
  • 打赏
  • 举报
回复
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'tiaozhuan.ui' # # Created by: PyQt5 UI code generator 5.5.1 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * #from haoP import Ui_nihao #第二界面 class Ui_nihao(QtWidgets.QWidget): def __init__(self): super(Ui_nihao,self).__init__() self.setObjectName("nihao") self.resize(400, 300) self.setWindowTitle("消息") self.label = QtWidgets.QLabel(self) self.label.setGeometry(QtCore.QRect(100, 80, 181, 91)) font = QtGui.QFont() font.setPointSize(55) self.label.setFont(font) self.label.setObjectName("label") self.label.setText("你好!") #第一界面 class Ui_PageB(QtWidgets.QWidget): def __init__(self): super(Ui_PageB,self).__init__() self.setObjectName("nihao") self.resize(400, 300) self.setWindowTitle("消息") self.changeP = QtWidgets.QPushButton(self) self.changeP.setGeometry(QtCore.QRect(100, 100, 181, 71)) self.changeP.setObjectName("changeP") self.changeP.setText("跳转") self.changeP.clicked.connect(self.haoPa) def haoPa(self): haoN=Ui_nihao() haoN.show() print ("@@@@@@@@@@@@@@@@@@@@@@@@@") haoN.exec_() if __name__ == "__main__": import sys app = QApplication(sys.argv) widget = Ui_PageB() widget.show() sys.exit(app.exec_()) 为什么点击按钮的时候报停止工作啊? 有知道怎么回事吗?
血_影 2015-09-19
  • 打赏
  • 举报
回复
from PyQt5.QtWidgets import * import sys class userForm(QDialog): def __init__(self, parent = None): super(userForm, self).__init__(parent) usrName = QLabel("UserName") passWd = QLabel("PassWd") self.userNameLineEdit = QLineEdit() self.passWdLineEdit = QLineEdit() self.passWdLineEdit.setEchoMode(QLineEdit.Password) gridLayout = QGridLayout() gridLayout.addWidget(usrName, 0, 0, 1, 1) gridLayout.addWidget(passWd, 1, 0, 1, 1) gridLayout.addWidget(self.userNameLineEdit,0,1,1,3) gridLayout.addWidget(self.passWdLineEdit,1,1,1,3) okPushBtn = QPushButton("OK") cancelPushBtn = QPushButton("Cancle") btnLayout = QHBoxLayout() btnLayout.setSpacing(60) btnLayout.addWidget(okPushBtn) btnLayout.addWidget(cancelPushBtn) dlgLayout = QVBoxLayout() dlgLayout.setContentsMargins(40,40,40,40) dlgLayout.addLayout(gridLayout) dlgLayout.addStretch(40) dlgLayout.addLayout(btnLayout) self.setLayout(dlgLayout) self.setWindowTitle("user WinForm") self.resize(200,200) class loginDlg(QDialog): def __init__(self, parent = None): super(loginDlg, self).__init__(parent) usrName = QLabel("UserName") passWd = QLabel("PassWd") self.userNameLineEdit = QLineEdit() self.passWdLineEdit = QLineEdit() self.passWdLineEdit.setEchoMode(QLineEdit.Password) gridLayout = QGridLayout() gridLayout.addWidget(usrName, 0, 0, 1, 1) gridLayout.addWidget(passWd, 1, 0, 1, 1) gridLayout.addWidget(self.userNameLineEdit,0,1,1,3) gridLayout.addWidget(self.passWdLineEdit,1,1,1,3) okPushBtn = QPushButton("OK") cancelPushBtn = QPushButton("Cancle") btnLayout = QHBoxLayout() btnLayout.setSpacing(60) btnLayout.addWidget(okPushBtn) btnLayout.addWidget(cancelPushBtn) dlgLayout = QVBoxLayout() dlgLayout.setContentsMargins(40,40,40,40) dlgLayout.addLayout(gridLayout) dlgLayout.addStretch(40) dlgLayout.addLayout(btnLayout) self.setLayout(dlgLayout) okPushBtn.clicked.connect(self.okClicked) cancelPushBtn.clicked.connect(self.cancleClicked) self.setWindowTitle("Login WinForm") self.resize(200,200) def okClicked(self): if self.userNameLineEdit.text().strip() == "1" and self.passWdLineEdit.text() == "1": #loginDlg.hide() newForm = userForm() newForm.show() newForm.exec_() else: QMessageBox.warning(self, "Warning", "User name or passWord error", QMessageBox.Yes ) self.userNameLineEdit.clear() self.passWdLineEdit.clear() self.userNameLineEdit.setFocus() def cancleClicked(self): QMessageBox.warning(self, "Warning", "your are going to exit", QMessageBox.Yes ) if __name__ == "__main__": app = QApplication(sys.argv) dlg = loginDlg() dlg.show() dlg.exec_() app.exit()

3,405

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 设计模式
社区管理员
  • 设计模式
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧