pyqt 两个窗口传值问题

发布于 2021-11-26 12:59:34 字数 1632 浏览 815 评论 2

背景描述:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

奈何桥上唱咆哮 2021-11-30 04:51:39

A.py

ip_add=self.lineEdit.text()

self.w2.line_edit_ip.setText(ip_add)

self.w2.show()

B.py

把import A删了.

臻嫒无言 2021-11-29 15:51:39

#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',.....

应该就可以了    

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文