在Python中,我有一个主窗口和一个QDialog窗口
如果单击主窗口上的hozzaadBtn,QDIALOG窗口将打开。在QDialog窗口上有一个文本框,如果我单击QDialog上的filmekHozzaadBtn,我希望主窗口上的QListWidget从QDialog获取文本框文本
我该怎么做
主窗口代码:
从PyQt5导入QtCore、QtGui、QtWidgets 从PyQt5.QtWidgets导入QAction、QFileDialog、QInputDialog、QDialog 将filmek作为f导入 导入系统 从filmAddDialog导入Ui\u filmAddDialog
类Ui_Foablak(对象):
def setupUi(self, Foablak):
Foablak.setObjectName("Foablak")
Foablak.resize(617, 350)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Foablak.sizePolicy().hasHeightForWidth())
Foablak.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
Foablak.setFont(font)
Foablak.setStyleSheet("")
Foablak.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
self.centralwidget = QtWidgets.QWidget(Foablak)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 50, 51, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(140, 50, 81, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(270, 50, 111, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.listazBtn = QtWidgets.QPushButton(self.centralwidget)
self.listazBtn.setGeometry(QtCore.QRect(10, 10, 101, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.listazBtn.setFont(font)
self.listazBtn.setStyleSheet("")
self.listazBtn.setObjectName("listazBtn")
self.hozzaadBtn = QtWidgets.QPushButton(self.centralwidget)
self.hozzaadBtn.setGeometry(QtCore.QRect(120, 10, 121, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.hozzaadBtn.setFont(font)
self.hozzaadBtn.setObjectName("hozzaadBtn")
self.modositBtn = QtWidgets.QPushButton(self.centralwidget)
self.modositBtn.setGeometry(QtCore.QRect(248, 10, 121, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.modositBtn.setFont(font)
self.modositBtn.setObjectName("modositBtn")
self.torolBtn = QtWidgets.QPushButton(self.centralwidget)
self.torolBtn.setGeometry(QtCore.QRect(380, 10, 91, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.torolBtn.setFont(font)
self.torolBtn.setObjectName("torolBtn")
self.mentesBtn = QtWidgets.QPushButton(self.centralwidget)
self.mentesBtn.setGeometry(QtCore.QRect(480, 10, 101, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.mentesBtn.setFont(font)
self.mentesBtn.setObjectName("mentesBtn")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(400, 70, 101, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.premierLbl = QtWidgets.QLabel(self.centralwidget)
self.premierLbl.setGeometry(QtCore.QRect(500, 70, 71, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.premierLbl.setFont(font)
self.premierLbl.setText("")
self.premierLbl.setObjectName("premierLbl")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(400, 100, 151, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.musoronLbl = QtWidgets.QLabel(self.centralwidget)
self.musoronLbl.setGeometry(QtCore.QRect(550, 100, 71, 16))
font = QtGui.QFont()
font.setPointSize(10)
self.musoronLbl.setFont(font)
self.musoronLbl.setText("")
self.musoronLbl.setObjectName("musoronLbl")
self.filmekListWidget = QtWidgets.QListWidget(self.centralwidget)
self.filmekListWidget.setGeometry(QtCore.QRect(10, 70, 121, 192))
self.filmekListWidget.setObjectName("filmekListWidget")
self.mozikListWidget = QtWidgets.QListWidget(self.centralwidget)
self.mozikListWidget.setGeometry(QtCore.QRect(140, 70, 121, 192))
self.mozikListWidget.setObjectName("mozikListWidget")
self.idopontokListWidget = QtWidgets.QListWidget(self.centralwidget)
self.idopontokListWidget.setGeometry(QtCore.QRect(270, 70, 121, 192))
self.idopontokListWidget.setObjectName("idopontokListWidget")
Foablak.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(Foablak)
self.menubar.setGeometry(QtCore.QRect(0, 0, 617, 21))
self.menubar.setObjectName("menubar")
Foablak.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(Foablak)
self.statusbar.setObjectName("statusbar")
Foablak.setStatusBar(self.statusbar)
self.retranslateUi(Foablak)
QtCore.QMetaObject.connectSlotsByName(Foablak)
self.listazBtn.clicked.connect(self.listazClicked)
self.filmekListWidget.currentItemChanged.connect(self.filmChanged)
self.torolBtn.clicked.connect(self.filmDelete)
self.hozzaadBtn.clicked.connect(self.filmhozzaadOpen)
def retranslateUi(self, Foablak):
_translate = QtCore.QCoreApplication.translate
Foablak.setWindowTitle(_translate("Foablak", "Cinema City"))
self.label.setText(_translate("Foablak", "Filmek:"))
self.label_2.setText(_translate("Foablak", "Vetítő mozik:"))
self.label_3.setText(_translate("Foablak", "Vetítési időpontok:"))
self.listazBtn.setText(_translate("Foablak", "Filmek listázása"))
self.hozzaadBtn.setText(_translate("Foablak", "Filmek hozzáadása"))
self.modositBtn.setText(_translate("Foablak", "Filmek módosítása"))
self.torolBtn.setText(_translate("Foablak", "Filmek törlése"))
self.mentesBtn.setText(_translate("Foablak", "Adatok mentése"))
self.label_4.setText(_translate("Foablak", "Premier dátuma:"))
self.label_5.setText(_translate("Foablak", "Hány napja van műsoron:"))
cimek = []
mozik = []
idopontok = []
premierek = []
musoron1 = []
def listazClicked(self):
self.filmekListWidget.clear()
inFile = open('musor.txt', 'r')
for i in inFile:
tmp = i.split(';')
film = f.Filmek(tmp[0], tmp[1], tmp[2], tmp[3], tmp[4])
self.cimek.append(film.cim)
self.mozik.append(film.mozi)
self.idopontok.append(film.idopont)
self.premierek.append(film.premier)
self.musoron1.append(film.musoron)
self.filmekListWidget.addItem(film.cim)
inFile.close()
def filmChanged(self):
self.mozikListWidget.clear()
self.idopontokListWidget.clear()
for j in range(len(self.cimek)):
if self.filmekListWidget.currentItem().text() == self.cimek[j]:
self.mozikListWidget.addItem(self.mozik[j])
self.idopontokListWidget.addItem(self.idopontok[j])
self.premierLbl.setText(self.premierek[j])
self.musoronLbl.setText(self.musoron1[j])
def filmDelete(self):
for item in self.filmekListWidget.selectedItems():
self.filmekListWidget.takeItem(self.filmekListWidget.row(item))
#for j in range(len(self.cimek)):
#if self.filmekListWidget.currentItem().text() == self.cimek[j]
def filmhozzaadOpen(self):
dialog = QDialog()
dialog.ui = Ui_filmAddDialog()
dialog.ui.setupUi(dialog)
dialog.exec_()
如果name==“main”: 导入系统 app=qtwidts.QApplication(sys.argv) Foablak=qtwidts.QMainWindow() ui=ui_Foablak() ui.setupUi(Foablak) Foablak.show() sys.exit(app.exec_())
QDialog代码:
从PyQt5导入QtCore、QtGui、QtWidgets
类Ui_filmAddDialog(对象):
def setupUi(self, filmAddDialog):
filmAddDialog.setObjectName("filmAddDialog")
filmAddDialog.resize(408, 254)
self.verticalLayoutWidget = QtWidgets.QWidget(filmAddDialog)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 160, 151))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.label_2 = QtWidgets.QLabel(self.verticalLayoutWidget)
font = QtGui.QFont()
font.setPointSize(10)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.verticalLayout.addWidget(self.label_2)
self.label_3 = QtWidgets.QLabel(self.verticalLayoutWidget)
font = QtGui.QFont()
font.setPointSize(10)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.verticalLayout.addWidget(self.label_3)
self.label_4 = QtWidgets.QLabel(self.verticalLayoutWidget)
font = QtGui.QFont()
font.setPointSize(10)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.verticalLayout.addWidget(self.label_4)
self.verticalLayoutWidget_2 = QtWidgets.QWidget(filmAddDialog)
self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(170, 10, 160, 151))
self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.filmcimAdd = QtWidgets.QTextEdit(self.verticalLayoutWidget_2)
self.filmcimAdd.setObjectName("filmcimAdd")
self.verticalLayout_2.addWidget(self.filmcimAdd)
self.vetitomoziAdd = QtWidgets.QTextEdit(self.verticalLayoutWidget_2)
self.vetitomoziAdd.setObjectName("vetitomoziAdd")
self.verticalLayout_2.addWidget(self.vetitomoziAdd)
self.idopontAdd = QtWidgets.QTextEdit(self.verticalLayoutWidget_2)
self.idopontAdd.setObjectName("idopontAdd")
self.verticalLayout_2.addWidget(self.idopontAdd)
self.premierAdd = QtWidgets.QTextEdit(self.verticalLayoutWidget_2)
self.premierAdd.setObjectName("premierAdd")
self.verticalLayout_2.addWidget(self.premierAdd)
self.filmekHozzaadBtn = QtWidgets.QPushButton(filmAddDialog)
self.filmekHozzaadBtn.setGeometry(QtCore.QRect(170, 180, 75, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.filmekHozzaadBtn.setFont(font)
self.filmekHozzaadBtn.setObjectName("filmekHozzaadBtn")
self.retranslateUi(filmAddDialog)
QtCore.QMetaObject.connectSlotsByName(filmAddDialog)
def retranslateUi(self, filmAddDialog):
_translate = QtCore.QCoreApplication.translate
filmAddDialog.setWindowTitle(_translate("filmAddDialog", "Film hozzáadása"))
self.label.setText(_translate("filmAddDialog", "Film címe:"))
self.label_2.setText(_translate("filmAddDialog", "Vetítő mozi:"))
self.label_3.setText(_translate("filmAddDialog", "Időpontok:"))
self.label_4.setText(_translate("filmAddDialog", "Premier dátuma:"))
self.filmekHozzaadBtn.setText(_translate("filmAddDialog", "Hozzáadás"))
如果name==“main”: 导入系统 app=qtwidts.QApplication(sys.argv) filmAddDialog=qtwidts.QDialog() ui=ui_filmAddDialog() ui.setupUi(filmAddDialog) filmAddDialog.show() sys.exit(app.exec_())
目前没有回答
相关问题 更多 >
编程相关推荐