pyqt 两个窗口传值问题
背景描述:
A窗口中存在一个IP输入框lineEdit,一个提交按钮pushbutton,点击提交按钮则打开B窗口,并传递输入的ip_add地址字符串给B窗口。
B窗口代码中包含登陆数据库语句。
预期目标:
接收A窗口提交过来的ip_add变量,进行登陆数据库,打印登陆是否成功的提示。
存在问题:
目前是点击提交按钮,可以成功打开B窗口,但不知道怎么将变量值(ip_add)传递给第二个窗口。
本人是新手,还望大家帮忙看看,有什么办法进行处理?
附:
A窗口处理语句:
# A.py # -*- coding: utf-8 -*- import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from Ui_1 import Ui_Form from B import * class Form(QWidget, Ui_Form): def __init__(self, parent=None): super(Form, self).__init__(parent) self.setupUi(self) def on_pushButton_clicked(self): global ip_add self.w2=B.Dialog() ip_add=self.lineEdit.text() self.w2.show() if __name__ == "__main__": app = QApplication(sys.argv) myapp = Form() myapp.show() sys.exit(app.exec_())B窗口基本处理语句:
# B.py # -*- coding: utf-8 -*- import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from Ui_2 import Ui_Dialog import A class Dialog(QDialog, Ui_Dialog): def __init__(self, parent=None): super(Dialog, self).__init__(parent) self.setupUi(self) conn = pymssql.connect(host=host_ip, database='db_name', user='db_user', password='db_pw') .........#其他处理部分 if __name__ == "__main__": app = QApplication(sys.argv) myapp = Dialog() myapp.show() sys.exit(app.exec_())
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
A.py
ip_add=self.lineEdit.text()
self.w2.line_edit_ip.setText(ip_add)
self.w2.show()
B.py
把import A删了.
#A界面的函数修改
def on_pushButton_clicked(self):
ip_add = self.lineEdit.text()
self.W2 = B.Dialog(ip_add)
self.W2.show()
#B界面的构造函数修改
class Dialog(QDialog,Ui_Dialog):
def __init__(self,host_ip,parent = None):
super(Dialog,self).__init__(parent)
self.setupUi(self)
conn = pymssql.connect(host = host_ip,database = 'db_name',user = 'db_user',.....
应该就可以了