我使用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