Pyqt Pass变量到QDialog类

时间:2018-03-23 18:10:22

标签: python pyqt qgis

我使用Pyqt开发了一个QGIS插件。我现在需要在这个插件中有一个QDialog弹出窗口,其字段填充了我们数据库中的数据。

我的问题是如何将一个变量(在这种情况下,它可能是一个表和行引用)传递给一个类,并让它由静态方法使用。

如果我从类中打印传入的变量,除了None之外还会返回变量吗?如果我采用相同的变量并尝试填充qplaintextedit它就不会起作用,因为它抱怨的是类型'无'。

这是一些测试代码,我试图让这个概念失效......

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import pdb

class mydi(QDialog):
    def __init__(self, pass_var, parent=None):
        super(mydi, self).__init__(parent)
        layout = QVBoxLayout(self)

        self.pass_var = pass_var

        print pass_var
        self.txt_comments = QPlainTextEdit(self)
        self.txt_comments.appendPlainText(pass_var)
        layout.addWidget(self.txt_comments)

        self.buttons = QDialogButtonBox(
        QDialogButtonBox.Ok | QDialogButtonBox.Cancel,
        Qt.Horizontal, self)
        layout.addWidget(self.buttons)

        self.buttons.accepted.connect(self.accept)
        self.buttons.rejected.connect(self.reject)

    def something(self):
        return self.somevar

    def comments(self):
        return self.txt_comments.toPlainText()


    @staticmethod
    def getData(parent=None):
        dialog = mydi(None)
        dialog.exec_()

        return (dialog.comments())

def main():
    app = QApplication([])
    pass_in_var = "test"
    dia = mydi(pass_in_var)

    data = dia.getData()
    print data

0 个答案:

没有答案