コードは次のとおりです。
def dial(self, dialog):
items = self.tableWidget.findItems(dialog.lineEdit2.text(), QtCore.Qt.MatchExactly)
if items:
for item in items:
if item.column() == 1:
self.row = item.row()
#----------
#Όνομα Πατρός:
try:
self.itema = self.tableWidget.item(self.row, 2).text()
except AttributeError:
self.itema = ' ---'
#Όνομα Μητρός:
try:
self.itemb = self.tableWidget.item(self.row, 3).text()
except AttributeError:
self.itemb = ' ---'
#Ημερομηνία Γέννησης:
try:
self.itemc = self.tableWidget.item(self.row, 4).text()
except AttributeError:
self.itemc = ' ---'
#Ημερομηνία Δικασίμου:
try:
self.itemd = self.tableWidget.item(self.row, 12).text()
except AttributeError:
self.itemd = ' ---'
#Ημερομηνία Απόφασης:
try:
self.iteme = self.tableWidget.item(self.row, 23).text()
except AttributeError:
self.iteme = ' ---'
#----------
self.results = (u'Ονοματεπώνυμο: %s\nΌνομα Πατρός: %s \nΌνομα Μητρός: %s \nΗμερομηνία Γέννησης: %s \nΗμερομηνία Δικασίμου: %s \nΑριθμός Απόφασης: %s ' % (item.text(), self.itema, self.itemb, self.itemc, self.itemd, self.iteme))
self.c = ChildFoundDlg(self)
self.c.show()
self.c.label2.setText(self.results)
self.c.pushButton.pressed.connect(lambda d=d: self.settext(d))
self.c.pushButton2.pressed.connect(lambda d=d: self.settext2(d))
ChildFoundDlg:
class ChildFoundDlg(QDialog):
#__init__ function:
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.resize(500, 270)
self.font = QtGui.QFont("Sans Serif", 10, QFont.Normal)
self.label = QtGui.QLabel(self)
self.label.setText(QtGui.QApplication.translate("Form", "Μήπως εννοείτε την/τον:", None, QtGui.QApplication.UnicodeUTF8))
self.label.setFont(self.font)
self.label.move(30,34)
self.label2 = QtGui.QLabel(self)
self.label2.setGeometry(QtCore.QRect(250, 34, 211, 100))
self.label2.setFont(self.font)
self.pushButton = QtGui.QPushButton(self)
self.pushButton.setGeometry(QtCore.QRect(30, 150, 180, 35))
self.pushButton.setText(QtGui.QApplication.translate("Form", "Υπότροπος", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton2 = QtGui.QPushButton(self)
self.pushButton2.setGeometry(QtCore.QRect(290, 150, 180, 35))
self.pushButton2.setText(QtGui.QApplication.translate("Form", "Αναβολή", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton3 = QtGui.QPushButton(self)
self.pushButton3.setGeometry(QtCore.QRect(150, 200, 200, 40))
self.pushButton3.setText(QtGui.QApplication.translate("Form", "Ακύρωση", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton3.clicked.connect(self.reject)
コードの最初の部分で、2 つ以上の結果が見つかった場合、2 つ以上のダイアログが表示されます...どうすればこの 2 つのダイアログを 1 つに (必要に応じてスクロールバーを使用して) 配置できますか?
アップデート:
私はこれがうまくいくと思った:
def dial(self, dialog):
items = self.tableWidget.findItems(dialog.lineEdit2.text(), QtCore.Qt.MatchExactly)
self.c = ChildFoundDlg(self)
self.c.show()
a_ = 0
b_ = 0
c_ = 0
if items:
for item in items:
if item.column() == 1:
self.row = item.row()
#----------
#Όνομα Πατρός:
try:
self.itema = self.tableWidget.item(self.row, 2).text()
except AttributeError:
self.itema = ' ---'
#Όνομα Μητρός:
try:
self.itemb = self.tableWidget.item(self.row, 3).text()
except AttributeError:
self.itemb = ' ---'
#Ημερομηνία Γέννησης:
try:
self.itemc = self.tableWidget.item(self.row, 4).text()
except AttributeError:
self.itemc = ' ---'
#Ημερομηνία Δικασίμου:
try:
self.itemd = self.tableWidget.item(self.row, 12).text()
except AttributeError:
self.itemd = ' ---'
#Ημερομηνία Απόφασης:
try:
self.iteme = self.tableWidget.item(self.row, 23).text()
except AttributeError:
self.iteme = ' ---'
#----------
a_ += 34
b_ += 150
c_ += 200
self.c.buttons(a_, b_, c_)
self.results = (u'Ονοματεπώνυμο: %s\nΌνομα Πατρός: %s \nΌνομα Μητρός: %s \nΗμερομηνία Γέννησης: %s \nΗμερομηνία Δικασίμου: %s \nΑριθμός Απόφασης: %s ' % (item.text(), self.itema, self.itemb, self.itemc, self.itemd, self.iteme))
self.c.label2.setText(self.results)
self.c.pushButton.pressed.connect(lambda d=d: self.settext(d))
self.c.pushButton2.pressed.connect(lambda d=d: self.settext2(d))
ChildFoundDlg :
class ChildFoundDlg(QDialog):
#__init__ function:
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.resize(500, 270)
self.setMaximumSize(500, 540)
def buttons(self, a, b, c): #a = 34, b = 150 c = 200
self.font = QtGui.QFont("Sans Serif", 10, QFont.Normal)
self.label = QtGui.QLabel(self)
self.label.setText(QtGui.QApplication.translate("Form", "Μήπως εννοείτε την/τον:", None, QtGui.QApplication.UnicodeUTF8))
self.label.setFont(self.font)
self.label.move(30, a)
self.label2 = QtGui.QLabel(self)
self.label2.setGeometry(QtCore.QRect(250, a, 211, 100))
self.label2.setFont(self.font)
self.pushButton = QtGui.QPushButton(self)
self.pushButton.setGeometry(QtCore.QRect(30, b, 180, 35))
self.pushButton.setText(QtGui.QApplication.translate("Form", "Υπότροπος", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton2 = QtGui.QPushButton(self)
self.pushButton2.setGeometry(QtCore.QRect(290, b, 180, 35))
self.pushButton2.setText(QtGui.QApplication.translate("Form", "Αναβολή", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton3 = QtGui.QPushButton(self)
self.pushButton3.setGeometry(QtCore.QRect(150, c, 200, 40))
self.pushButton3.setText(QtGui.QApplication.translate("Form", "Ακύρωση", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton3.clicked.connect(self.reject)
しかし、そうではありません...なぜですか?