Python PyQt:访问主窗口';从对话框中删除数据?
所以,我正在使用Python和PyQt。我有一个主窗口,其中包含一个QTableWidget和一个对话框,该对话框以模块方式打开,其中包含一些QLineEdit小部件。。。到目前为止还行,但我有两个问题:Python PyQt:访问主窗口';从对话框中删除数据?,python,pyqt,qdialog,qmainwindow,Python,Pyqt,Qdialog,Qmainwindow,所以,我正在使用Python和PyQt。我有一个主窗口,其中包含一个QTableWidget和一个对话框,该对话框以模块方式打开,其中包含一些QLineEdit小部件。。。到目前为止还行,但我有两个问题: 当对话框打开时,我的主窗口冻结,我真的不喜欢这样 我想要的是,当我编辑完QLineEdit后,程序将搜索QTableWidget,如果来自QLineEdit的文本存在于表中,将出现一个对话框并通知我。这是总的想法。但是,到目前为止,我似乎只能创建一个新的QTableWidget实例,而且我无法
intqdialog::exec()[slot]
将对话框显示为模式对话框,
阻止,直到用户关闭它。该函数返回一个对话框code
结果。如果对话框为应用程序模式,则用户无法与
同一应用程序中的任何其他窗口,直到它们关闭对话框为止
如果对话框是窗口模式,则仅与父窗口交互
对话框打开时被阻止。默认情况下,该对话框为
应用模式
关于:
无模式对话框是一种独立于其他对话框运行的对话框
同一应用程序中的windows。在中查找和替换对话框
字处理器通常是无模式的,以允许用户与
应用程序的主窗口和对话框
无模式
对话框是使用show()
显示的,它将控制权返回给
马上打电话来
例如:
import sys
from PyQt4 import QtCore, QtGui
class SearchDialog(QtGui.QDialog):
def __init__(self, parent = None):
QtGui.QDialog.__init__(self, parent)
self.setWindowTitle('Search')
self.searchEdit = QtGui.QLineEdit()
layout = QtGui.QVBoxLayout()
layout.addWidget(self.searchEdit)
self.setLayout(layout)
class MainWindow(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self, None)
self.resize(QtCore.QSize(320, 240))
self.setWindowTitle('Main window')
self.logText = QtGui.QPlainTextEdit()
searchButton = QtGui.QPushButton('Search')
layout = QtGui.QVBoxLayout()
layout.addWidget(self.logText)
layout.addWidget(searchButton)
self.setLayout(layout)
searchButton.clicked.connect(self.showSearchDialog)
def showSearchDialog(self):
searchDialog = SearchDialog(self)
searchDialog.show()
searchDialog.searchEdit.returnPressed.connect(self.onSearch)
def onSearch(self):
self.logText.appendPlainText(self.sender().text())
def main():
app = QtGui.QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
app.exec_()
if __name__ == "__main__":
main()
单击“搜索”打开一个搜索窗口(您可以打开多个窗口)。输入要搜索的文本,然后按Enter键。要搜索的文本将添加到主窗口中的日志中。在接受无模式对话框后,如何从该对话框中获取数据?
QDialog
has signal。连接到它。是的,但是,因为主窗口和QDialog属于不同的类,所以数据混淆了…对不起,我不理解你的问题。你能写一个小的,独立的例子吗。。。我想看看你会怎么做。。。看看我做错了什么。。。