PyQt'de bir kullanıcı arabirimi üzerinde çalışıyorum ve QDialog kullanmaya çalışırken birkaç sorunla karşılaşıyorum. Esasen, ayrı bir .px dosyalarında kaydedilmiş bir ana widget ve bir alt widget'ım var; Ana pencere öğesinde belirli bir düğmeyi tıkladığımda alt pencere öğesinin açılmasını isterim. Bu iyi görünüyor.PyQt QDialog - bir değer döndürüp iletişim kutusundan kapatılıyor
Sorun, dönen ve kapanıyor. Alt widget'ımda "gönder" düğmesi var - kullanıcı bu düğmeyi tıkladığında, ana widget’e bir değer (girişlerinden yapılan bir sözlük) döndürmek ve alt parçacığı kapatmak istiyorum. Şu anda sahip olduğum kodla bu gibi şeylerden birini yapamam. Ana widget'ta kod
Uygulanabilir bit (sorun bariz değilse o kendine yeten yapmak için daha fazla ekleyebilirsiniz):
import SGROIWidget_ui
def retranslateUi(self, ROIGUI):
#ShowGroupROI is a push-button
self.ShowGroupROI.clicked.connect(self.ShowGroupROIFunction)
def ShowGroupROIFunction(self):
dialog = QDialog()
dialog.ui = SGROIWidget_ui.Ui_ShowGroupWidget()
dialog.ui.setupUi(dialog)
dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
if dialog.exec_():
roiGroups=dialog.Submitclose()
print(roiGroups)
dialog.accept()
Ben if deyiminin sonra kod vurmak gibi asla . Eski bu widget çalıştırıldığında tanınmayan burada da) ben ex.close (denedi *
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_ShowGroupWidget(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setupUi(self)
def setupUi(self, ShowGroupWidget):
#sets up Submit button
def retranslateUi(self, ShowGroupWidget):
self.Submit.clicked.connect(self.Submitclose)
def Submitclose(self):
roiGroups={}
#roiGroups gets set up here as a dictionary
#It prints nicely from here so I know it's not the issue
return roiGroups
#I don't know if I can just do a return statement like this?
self.close()*
ama:
benim alt widget'ından uygulanabilir kodu (daha biraz burada yer alacak) diyalog olarak Geri dönüş bildirimi nedeniyle bu satıra ulaşması gerektiği gibi görünmüyor, ancak kullanıcı "gönder" kelimesine ulaştıktan sonra bu widget'ı nasıl kapatacağımı bilmiyorum. Veya ana widget'ımdaki dialog.accept() öğesi bunu işlemeli mi?
Son bir şey - bunun yerine alt widget'ımda buna ihtiyacım var, çünkü ana widget'ım yerine çalıştırılıyor? peşin
if __name__=='__main__':
app=QtGui.QApplication(sys.argv)
ex=Ui_ShowGroupWidget()
ex.show()
sys.exit(app.exec_())
teşekkürler! PyQt için oldukça yeniyim, bu yüzden umarım bu biraz okunaklı.
Bu düzeltildi - çok teşekkürler! –