繁体   English   中英

如何获取QDialog QlineEdit窗口以输出到QtableWidgetCell?

[英]How to get a QDialog QlineEdit window to output to QtableWidgetCell?

我是Python和PyQT4的新手。

我有一个带有QlineEdit的简单QDialog Box。

class Ui_UserCode(object):
def setupUi(self, UserCode):
    UserCode.setObjectName(_fromUtf8("UserCode"))
    UserCode.resize(265, 125)
    UserCode.setMouseTracking(False)
    self.lineEdit = QtGui.QLineEdit(UserCode)
    self.lineEdit.setGeometry(QtCore.QRect(60, 50, 151, 31))
    self.lineEdit.setFrame(True)
    self.lineEdit.setAlignment(QtCore.Qt.AlignCenter)
    self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
    QtCore.QObject.connect(self.lineEdit, QtCore.SIGNAL(_fromUtf8("returnPressed()")), UserCode.insertUC)
    self.label = QtGui.QLabel(UserCode)
    self.label.setGeometry(QtCore.QRect(60, 20, 151, 20))
    self.label.setObjectName(_fromUtf8("label"))
    self.buttonBox = QtGui.QDialogButtonBox(UserCode)
    self.buttonBox.setGeometry(QtCore.QRect(40, 90, 180, 32))
    self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
    self.buttonBox.setObjectName(_fromUtf8("buttonBox"))

    self.retranslateUi(UserCode)

    QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), UserCode.accept)
    QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), UserCode.reject)
    QtCore.QMetaObject.connectSlotsByName(UserCode)

def retranslateUi(self, UserCode):
    UserCode.setWindowTitle(_translate("UserCode", "Dialog", None))
    self.label.setText(_translate("UserCode", "Please Enter User Code", None))
    self.lineEdit.setText(_translate("Dialog", "", None))

这行代码在我创建的QtableWidget的单独类中。

  item.setText(_translate("MainWindow", "" , None))

然后...我的初始化类和pyqtSlot()

 class StartUC(QDialog):
    def __init__(self):
    QDialog.__init__(self)
    self.uc = Ui_UserCode()
    self.uc.setupUi(self)
    self.ui = Ui_MainWindow()

@QtCore.pyqtSlot()
def insertUC(self):
    inputNumber = self.uc.lineEdit.text()
    tableWidget = StartMain(QTableWidgetItem)
    item = tableWidget.item(0, 1)
    tableWidget.item.setText("MainWindow", "%s"% inputNumber, None)

class StartMain(QtGui.QMainWindow):
    def __init__(self, parent=None):
       QtGui.QWidget.__init__(self, parent)
       self.ui = Ui_MainWindow()
       self.ui.setupUi(self)

我的问题是如何获取对话框的QlineEdit以便在returnPressed事件上填充QtableWidgetCell? 我的pyqtSlot()方法是否在正确的位置? 我意识到我还有很多东西要学习,所以如果有人能指出正确的方向,那将是很棒的。 PyQT文档给了我不错的开始,但是我不确定如何完成此工作...

看看我为这个问题编写的代码https://stackoverflow.com/a/18447504/1155106

您可以运行它,它执行一些简单的操作,因此您可以看到如何使用插槽和信号以及如何在类之间传递信号。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM