Python-PyQt5-关闭第二个窗口而不关闭所有应用程序

时间:2018-11-03 10:19:29

标签: python pyqt window pyqt5 sigsegv

我需要帮助。 目前,我正在构建一个小程序,用于从EXCEL向收件人发送电子邮件。 我使用了PyQt5。不幸的是,我在使用小部件打开文件时遇到问题(用户选择excel文件来下载收件人列表)。当我打开第二个窗口并选择文件时-我的程序将路径保存在内存中并关闭了该程序-与主窗口一起。 这一点是不希望的。我在代码中有错误吗? 我在控制台上收到:进程以退出代码-1073741819(0xC0000005)完成。(MS Widnows版本)或进程以退出代码139完成(被信号11:SIGSEGV中断)(在Mac OS版本中)

附件中有3个文件:

1。)MainMasoweWysylki.py(带有图形的模块)

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Program_0(object):
    def setupUi(self, Program_0):
        Program_0.setObjectName("Program_0")
        Program_0.setWindowModality(QtCore.Qt.ApplicationModal)
        Program_0.setEnabled(True)
        Program_0.resize(800, 504)
        Program_0.setAcceptDrops(False)
        Program_0.setAutoFillBackground(True)
        self.Obiekty_0 = QtWidgets.QWidget(Program_0)
        self.Obiekty_0.setObjectName("Obiekty_0")
        self.PoleWyboru = QtWidgets.QTabWidget(self.Obiekty_0)
        self.PoleWyboru.setGeometry(QtCore.QRect(10, 210, 771, 261))
        self.PoleWyboru.setObjectName("PoleWyboru")
        self.Pole_EMAIL = QtWidgets.QWidget()
        self.Pole_EMAIL.setObjectName("Pole_EMAIL")
        self.Wejscie_TrescEMAIL = QtWidgets.QPlainTextEdit(self.Pole_EMAIL)
        self.Wejscie_TrescEMAIL.setGeometry(QtCore.QRect(10, 10, 751, 211))
        self.Wejscie_TrescEMAIL.setObjectName("Wejscie_TrescEMAIL")
        self.PoleWyboru.addTab(self.Pole_EMAIL, "")
        self.Pole_SMS = QtWidgets.QWidget()
        self.Pole_SMS.setObjectName("Pole_SMS")
        self.Nazwa_LiczbaZnakowSMS = QtWidgets.QLabel(self.Pole_SMS)
        self.Nazwa_LiczbaZnakowSMS.setGeometry(QtCore.QRect(650, 20, 111, 16))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.Nazwa_LiczbaZnakowSMS.setFont(font)
        self.Nazwa_LiczbaZnakowSMS.setTextFormat(QtCore.Qt.RichText)
        self.Nazwa_LiczbaZnakowSMS.setObjectName("Nazwa_LiczbaZnakowSMS")
        self.Licznik_LiczbaZnakow = QtWidgets.QLCDNumber(self.Pole_SMS)
        self.Licznik_LiczbaZnakow.setGeometry(QtCore.QRect(660, 50, 81, 31))
        font = QtGui.QFont()
        font.setPointSize(8)
        font.setBold(False)
        font.setWeight(50)
        self.Licznik_LiczbaZnakow.setFont(font)
        self.Licznik_LiczbaZnakow.setFrameShape(QtWidgets.QFrame.Box)
        self.Licznik_LiczbaZnakow.setDigitCount(6)
        self.Licznik_LiczbaZnakow.setMode(QtWidgets.QLCDNumber.Dec)
        self.Licznik_LiczbaZnakow.setSegmentStyle(QtWidgets.QLCDNumber.Filled)
        self.Licznik_LiczbaZnakow.setProperty("intValue", 0)
        self.Licznik_LiczbaZnakow.setObjectName("Licznik_LiczbaZnakow")
        self.Nazwa_InformacjaOSMS = QtWidgets.QLabel(self.Pole_SMS)
        self.Nazwa_InformacjaOSMS.setGeometry(QtCore.QRect(630, 90, 141, 81))
        self.Nazwa_InformacjaOSMS.setAccessibleName("Info_LiczbaZnakowLong")
        self.Nazwa_InformacjaOSMS.setAlignment(QtCore.Qt.AlignCenter)
        self.Nazwa_InformacjaOSMS.setWordWrap(True)
        self.Nazwa_InformacjaOSMS.setObjectName("Nazwa_InformacjaOSMS")
        self.Wejscie_TrescSMS = QtWidgets.QPlainTextEdit(self.Pole_SMS)
        self.Wejscie_TrescSMS.setGeometry(QtCore.QRect(10, 10, 611, 211))
        self.Wejscie_TrescSMS.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.Wejscie_TrescSMS.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.Wejscie_TrescSMS.setObjectName("Wejscie_TrescSMS")
        self.PoleWyboru.addTab(self.Pole_SMS, "")
        self.Nazwa_TytulWysylki = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_TytulWysylki.setGeometry(QtCore.QRect(40, 30, 101, 21))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.Nazwa_TytulWysylki.setFont(font)
        self.Nazwa_TytulWysylki.setObjectName("Nazwa_TytulWysylki")
        self.Nazwa_KategoriaPisma = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_KategoriaPisma.setGeometry(QtCore.QRect(40, 70, 111, 16))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.Nazwa_KategoriaPisma.setFont(font)
        self.Nazwa_KategoriaPisma.setObjectName("Nazwa_KategoriaPisma")
        self.Wybor_KategoriaPisma = QtWidgets.QComboBox(self.Obiekty_0)
        self.Wybor_KategoriaPisma.setGeometry(QtCore.QRect(160, 70, 261, 22))
        self.Wybor_KategoriaPisma.setObjectName("Wybor_KategoriaPisma")
        self.Nazwa_PlikDystrybucyjnyEXCEL = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_PlikDystrybucyjnyEXCEL.setGeometry(QtCore.QRect(40, 130, 181, 16))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.Nazwa_PlikDystrybucyjnyEXCEL.setFont(font)
        self.Nazwa_PlikDystrybucyjnyEXCEL.setObjectName("Nazwa_PlikDystrybucyjnyEXCEL")
        self.LiniaPozioma = QtWidgets.QFrame(self.Obiekty_0)
        self.LiniaPozioma.setGeometry(QtCore.QRect(40, 100, 591, 16))
        self.LiniaPozioma.setFrameShape(QtWidgets.QFrame.HLine)
        self.LiniaPozioma.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.LiniaPozioma.setObjectName("LiniaPozioma")
        self.Przycisk_PlikDystrybucyjnyEXCEL = QtWidgets.QToolButton(self.Obiekty_0)
        self.Przycisk_PlikDystrybucyjnyEXCEL.setGeometry(QtCore.QRect(540, 130, 31, 21))
        self.Przycisk_PlikDystrybucyjnyEXCEL.setObjectName("Przycisk_PlikDystrybucyjnyEXCEL")
        self.Wejscie_PlikDystrybucyjnyEXCEL = QtWidgets.QLineEdit(self.Obiekty_0)
        self.Wejscie_PlikDystrybucyjnyEXCEL.setGeometry(QtCore.QRect(230, 130, 301, 20))
        self.Wejscie_PlikDystrybucyjnyEXCEL.setObjectName("Wejscie_PlikDystrybucyjnyEXCEL")
        self.Wejscie_TytulWysylki = QtWidgets.QLineEdit(self.Obiekty_0)
        self.Wejscie_TytulWysylki.setGeometry(QtCore.QRect(140, 30, 281, 20))
        self.Wejscie_TytulWysylki.setObjectName("Wejscie_TytulWysylki")
        self.Grupa_SposobWysylki = QtWidgets.QGroupBox(self.Obiekty_0)
        self.Grupa_SposobWysylki.setGeometry(QtCore.QRect(450, 30, 91, 61))
        self.Grupa_SposobWysylki.setObjectName("Grupa_SposobWysylki")
        self.CheckBox_SMS = QtWidgets.QCheckBox(self.Grupa_SposobWysylki)
        self.CheckBox_SMS.setGeometry(QtCore.QRect(10, 20, 70, 17))
        self.CheckBox_SMS.setObjectName("CheckBox_SMS")
        self.CheckBox_EMAIL = QtWidgets.QCheckBox(self.Grupa_SposobWysylki)
        self.CheckBox_EMAIL.setGeometry(QtCore.QRect(10, 40, 70, 17))
        self.CheckBox_EMAIL.setObjectName("CheckBox_EMAIL")
        self.Nazwa_IloscWierszy = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_IloscWierszy.setGeometry(QtCore.QRect(40, 170, 101, 16))
        self.Nazwa_IloscWierszy.setObjectName("Nazwa_IloscWierszy")
        self.Licznik_IloscWierszy = QtWidgets.QLCDNumber(self.Obiekty_0)
        self.Licznik_IloscWierszy.setGeometry(QtCore.QRect(120, 170, 41, 16))
        font = QtGui.QFont()
        font.setBold(False)
        font.setWeight(50)
        self.Licznik_IloscWierszy.setFont(font)
        self.Licznik_IloscWierszy.setSmallDecimalPoint(False)
        self.Licznik_IloscWierszy.setSegmentStyle(QtWidgets.QLCDNumber.Filled)
        self.Licznik_IloscWierszy.setObjectName("Licznik_IloscWierszy")
        self.Nazwa_IloscPoprawnychAdresowEMAIL = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_IloscPoprawnychAdresowEMAIL.setGeometry(QtCore.QRect(180, 170, 171, 16))
        self.Nazwa_IloscPoprawnychAdresowEMAIL.setObjectName("Nazwa_IloscPoprawnychAdresowEMAIL")
        self.Licznik_IloscPoprawnychAdresowEMAIL = QtWidgets.QLCDNumber(self.Obiekty_0)
        self.Licznik_IloscPoprawnychAdresowEMAIL.setGeometry(QtCore.QRect(350, 170, 41, 16))
        self.Licznik_IloscPoprawnychAdresowEMAIL.setObjectName("Licznik_IloscPoprawnychAdresowEMAIL")
        self.Nazwa_IloscNumerowTelefonow = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_IloscNumerowTelefonow.setGeometry(QtCore.QRect(400, 170, 131, 16))
        self.Nazwa_IloscNumerowTelefonow.setObjectName("Nazwa_IloscNumerowTelefonow")
        self.Licznik_IloscNumerowTelefonow = QtWidgets.QLCDNumber(self.Obiekty_0)
        self.Licznik_IloscNumerowTelefonow.setGeometry(QtCore.QRect(530, 170, 41, 16))
        self.Licznik_IloscNumerowTelefonow.setObjectName("Licznik_IloscNumerowTelefonow")
        self.LiniaPionowa = QtWidgets.QFrame(self.Obiekty_0)
        self.LiniaPionowa.setGeometry(QtCore.QRect(650, 20, 16, 191))
        self.LiniaPionowa.setFrameShape(QtWidgets.QFrame.VLine)
        self.LiniaPionowa.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.LiniaPionowa.setObjectName("LiniaPionowa")
        self.Przycisk_Instrukcja = QtWidgets.QPushButton(self.Obiekty_0)
        self.Przycisk_Instrukcja.setGeometry(QtCore.QRect(670, 40, 111, 31))
        self.Przycisk_Instrukcja.setObjectName("Przycisk_Instrukcja")
        self.Przycisk_TestowyEMAIL = QtWidgets.QPushButton(self.Obiekty_0)
        self.Przycisk_TestowyEMAIL.setGeometry(QtCore.QRect(670, 80, 111, 31))
        self.Przycisk_TestowyEMAIL.setObjectName("Przycisk_TestowyEMAIL")
        self.Przycisk_TestowySMS = QtWidgets.QPushButton(self.Obiekty_0)
        self.Przycisk_TestowySMS.setGeometry(QtCore.QRect(670, 120, 111, 31))
        self.Przycisk_TestowySMS.setObjectName("Przycisk_TestowySMS")
        self.Przycisk_WyslijPisma = QtWidgets.QPushButton(self.Obiekty_0)
        self.Przycisk_WyslijPisma.setGeometry(QtCore.QRect(670, 180, 111, 41))
        self.Przycisk_WyslijPisma.setObjectName("Przycisk_WyslijPisma")
        self.Nazwa_OpcjeInformacyjne = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_OpcjeInformacyjne.setGeometry(QtCore.QRect(670, 20, 121, 16))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(True)
        font.setWeight(75)
        self.Nazwa_OpcjeInformacyjne.setFont(font)
        self.Nazwa_OpcjeInformacyjne.setObjectName("Nazwa_OpcjeInformacyjne")
        self.Nazwa_WysylkaMasowa = QtWidgets.QLabel(self.Obiekty_0)
        self.Nazwa_WysylkaMasowa.setGeometry(QtCore.QRect(670, 160, 101, 16))
        font = QtGui.QFont()
        font.setBold(True)
        font.setUnderline(True)
        font.setWeight(75)
        self.Nazwa_WysylkaMasowa.setFont(font)
        self.Nazwa_WysylkaMasowa.setObjectName("Nazwa_WysylkaMasowa")
        self.Grupa_CzyTrescExcel = QtWidgets.QGroupBox(self.Obiekty_0)
        self.Grupa_CzyTrescExcel.setGeometry(QtCore.QRect(550, 30, 101, 61))
        self.Grupa_CzyTrescExcel.setFlat(False)
        self.Grupa_CzyTrescExcel.setCheckable(False)
        self.Grupa_CzyTrescExcel.setObjectName("Grupa_CzyTrescExcel")
        self.TrescExcel_Tak = QtWidgets.QRadioButton(self.Grupa_CzyTrescExcel)
        self.TrescExcel_Tak.setGeometry(QtCore.QRect(10, 40, 82, 16))
        self.TrescExcel_Tak.setObjectName("TrescExcel_Tak")
        self.TrescExcel_Nie = QtWidgets.QRadioButton(self.Grupa_CzyTrescExcel)
        self.TrescExcel_Nie.setGeometry(QtCore.QRect(10, 20, 82, 17))
        self.TrescExcel_Nie.setChecked(True)
        self.TrescExcel_Nie.setObjectName("TrescExcel_Nie")
        Program_0.setCentralWidget(self.Obiekty_0)
        self.Menu_0 = QtWidgets.QMenuBar(Program_0)
        self.Menu_0.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.Menu_0.setObjectName("Menu_0")
        self.Menu_Administrator = QtWidgets.QMenu(self.Menu_0)
        self.Menu_Administrator.setObjectName("Menu_Administrator")
        self.Menu_Raporty = QtWidgets.QMenu(self.Menu_0)
        self.Menu_Raporty.setObjectName("Menu_Raporty")
        Program_0.setMenuBar(self.Menu_0)
        self.Menu_WysylkaEMAIL = QtWidgets.QAction(Program_0)
        self.Menu_WysylkaEMAIL.setObjectName("Menu_WysylkaEMAIL")
        self.Menu_WysylkaSMS = QtWidgets.QAction(Program_0)
        self.Menu_WysylkaSMS.setObjectName("Menu_WysylkaSMS")
        self.Menu_WyslanePismaPodsumowanie = QtWidgets.QAction(Program_0)
        self.Menu_WyslanePismaPodsumowanie.setObjectName("Menu_WyslanePismaPodsumowanie")
        self.Menu_WyslanePismaSzczegoly = QtWidgets.QAction(Program_0)
        self.Menu_WyslanePismaSzczegoly.setObjectName("Menu_WyslanePismaSzczegoly")
        self.Menu_InformacjeOProgramie = QtWidgets.QAction(Program_0)
        self.Menu_InformacjeOProgramie.setObjectName("Menu_InformacjeOProgramie")
        self.Menu_Administrator.addAction(self.Menu_WysylkaEMAIL)
        self.Menu_Administrator.addAction(self.Menu_WysylkaSMS)
        self.Menu_Administrator.addSeparator()
        self.Menu_Administrator.addAction(self.Menu_InformacjeOProgramie)
        self.Menu_Raporty.addAction(self.Menu_WyslanePismaPodsumowanie)
        self.Menu_Raporty.addAction(self.Menu_WyslanePismaSzczegoly)
        self.Menu_0.addAction(self.Menu_Administrator.menuAction())
        self.Menu_0.addAction(self.Menu_Raporty.menuAction())

        self.retranslateUi(Program_0)
        self.PoleWyboru.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(Program_0)
        Program_0.setTabOrder(self.Wejscie_TytulWysylki, self.Wybor_KategoriaPisma)
        Program_0.setTabOrder(self.Wybor_KategoriaPisma, self.CheckBox_SMS)
        Program_0.setTabOrder(self.CheckBox_SMS, self.CheckBox_EMAIL)
        Program_0.setTabOrder(self.CheckBox_EMAIL, self.TrescExcel_Nie)
        Program_0.setTabOrder(self.TrescExcel_Nie, self.TrescExcel_Tak)
        Program_0.setTabOrder(self.TrescExcel_Tak, self.Wejscie_PlikDystrybucyjnyEXCEL)
        Program_0.setTabOrder(self.Wejscie_PlikDystrybucyjnyEXCEL, self.Przycisk_PlikDystrybucyjnyEXCEL)
        Program_0.setTabOrder(self.Przycisk_PlikDystrybucyjnyEXCEL, self.PoleWyboru)
        Program_0.setTabOrder(self.PoleWyboru, self.Wejscie_TrescEMAIL)
        Program_0.setTabOrder(self.Wejscie_TrescEMAIL, self.Wejscie_TrescSMS)
        Program_0.setTabOrder(self.Wejscie_TrescSMS, self.Przycisk_Instrukcja)
        Program_0.setTabOrder(self.Przycisk_Instrukcja, self.Przycisk_TestowyEMAIL)
        Program_0.setTabOrder(self.Przycisk_TestowyEMAIL, self.Przycisk_TestowySMS)
        Program_0.setTabOrder(self.Przycisk_TestowySMS, self.Przycisk_WyslijPisma)

    def retranslateUi(self, Program_0):
        _translate = QtCore.QCoreApplication.translate
        Program_0.setWindowTitle(_translate("Program_0", "Generator wiadomości masowych"))
        self.PoleWyboru.setTabText(self.PoleWyboru.indexOf(self.Pole_EMAIL), _translate("Program_0", "Pole E-MAIL"))
        self.Nazwa_LiczbaZnakowSMS.setAccessibleName(_translate("Program_0", "Info_LiczbaZnakow"))
        self.Nazwa_LiczbaZnakowSMS.setText(_translate("Program_0", "Liczba znaków:"))
        self.Licznik_LiczbaZnakow.setAccessibleName(_translate("Program_0", "Licznik"))
        self.Nazwa_InformacjaOSMS.setText(_translate("Program_0", "Wiadomość SMS w jednej wysyłce może zawierać maksymalnie 160 znaków. Wielokrotność tej liczby to kolejna opłata SMS."))
        self.PoleWyboru.setTabText(self.PoleWyboru.indexOf(self.Pole_SMS), _translate("Program_0", "Pole SMS"))
        self.Nazwa_TytulWysylki.setText(_translate("Program_0", "Tytuł wysyłki:"))
        self.Nazwa_KategoriaPisma.setText(_translate("Program_0", "Kategoria pisma:"))
        self.Nazwa_PlikDystrybucyjnyEXCEL.setText(_translate("Program_0", "Plik dystrybucyjny (EXCEL):"))
        self.Przycisk_PlikDystrybucyjnyEXCEL.setText(_translate("Program_0", "..."))
        self.Grupa_SposobWysylki.setTitle(_translate("Program_0", "Sposób wysyłki"))
        self.CheckBox_SMS.setText(_translate("Program_0", "SMS"))
        self.CheckBox_EMAIL.setText(_translate("Program_0", "E-MAIL"))
        self.Nazwa_IloscWierszy.setText(_translate("Program_0", "Ilość wierszy:"))
        self.Nazwa_IloscPoprawnychAdresowEMAIL.setText(_translate("Program_0", "Ilość popawnych adresów E-MAIL:"))
        self.Nazwa_IloscNumerowTelefonow.setText(_translate("Program_0", "Ilość numerów telefonów:"))
        self.Przycisk_Instrukcja.setText(_translate("Program_0", "Instrukcja"))
        self.Przycisk_TestowyEMAIL.setText(_translate("Program_0", "Testowy E-MAIL"))
        self.Przycisk_TestowySMS.setText(_translate("Program_0", "Testowy SMS"))
        self.Przycisk_WyslijPisma.setText(_translate("Program_0", "Wyślij pisma"))
        self.Nazwa_OpcjeInformacyjne.setText(_translate("Program_0", "Opcje informacyjne:"))
        self.Nazwa_WysylkaMasowa.setText(_translate("Program_0", "Wysyłka masowa:"))
        self.Grupa_CzyTrescExcel.setTitle(_translate("Program_0", "Treść z EXCEL?"))
        self.TrescExcel_Tak.setText(_translate("Program_0", "Tak"))
        self.TrescExcel_Nie.setText(_translate("Program_0", "Nie"))
        self.Menu_Administrator.setTitle(_translate("Program_0", "Administrator"))
        self.Menu_Raporty.setTitle(_translate("Program_0", "Raporty"))
        self.Menu_WysylkaEMAIL.setText(_translate("Program_0", "Wysyłka E-MAIL"))
        self.Menu_WysylkaSMS.setText(_translate("Program_0", "Wysyłka SMS"))
        self.Menu_WyslanePismaPodsumowanie.setText(_translate("Program_0", "Wysłane pisma podsumowanie"))
        self.Menu_WyslanePismaSzczegoly.setText(_translate("Program_0", "Wysłane pisma szczegóły"))
        self.Menu_InformacjeOProgramie.setText(_translate("Program_0", "Info o programie"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Program_0 = QtWidgets.QMainWindow()
    ui = Ui_Program_0()
    ui.setupUi(Program_0)
    Program_0.show()
    #sys.exit(app.exec_())

2。)DialogWskazywaniePlikow.py(是带有打开文件的小部件的模块)

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog
from PyQt5.QtGui import QIcon


class WskazPlik(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'Wskaz plik wsadowy'
        self.left = 10
        self.top = 10
        self.width = 640
        self.height = 480
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

    def Wsad(self):
        options = QFileDialog.Options()
        fileName, _ = QFileDialog.getOpenFileName(self, "Wskaz wplik wsadowy", "",
                                                  "Excel (*.xlsx, *.xls, *.*)", options=options)
        if fileName:
            return fileName
        #self.close()



#if __name__ == '__main__':
def OknoWyboryPliku():
    app = QApplication(sys.argv)
    return WskazPlik().Wsad()
    #sys.exit(app.exec_())

3。)MainMasoweWysylkiWywolanie.py(程序的核心-打开其他程序并进行主要控制)

from PyQt5 import QtWidgets, QtGui
import sys

#Import modułow stworzonych pod głowny program
from MainMasoweWysylki import Ui_Program_0
import DialogWskazywaniePlikow


CzyEMAIL = False
CzySMS = False
ZrodloTresciWiadomosci = ''

#KLASY

#Klasa głowna pozwalająca na działanie na oknie głównym
class OknoGlowne(QtWidgets.QMainWindow):
    def __init__(self):
        super(OknoGlowne, self).__init__()
        self.ui = Ui_Program_0()
        self.ui.setupUi(self)


#Sygnały
        #Czy ma nastąpić wysyłka poprzez E-MAIL i/lub SMS
        self.ui.CheckBox_EMAIL.stateChanged.connect(lambda: CheckBox_Sprawdzenie(self.ui.CheckBox_EMAIL, self))
        self.ui.CheckBox_SMS.stateChanged.connect(lambda: CheckBox_Sprawdzenie(self.ui.CheckBox_SMS, self))

        #Licznik znakow dla SMS
        self.ui.Wejscie_TrescSMS.textChanged.connect(lambda: LicznikZnakowSMS(self.ui.Wejscie_TrescSMS.document().toPlainText(),self))

        #Wybór czy tresc wiadomości ma byc określona w programie czy bezposrednio w EXCEL
        self.ui.TrescExcel_Nie.toggled.connect(lambda: CheckBox_Sprawdzenie(self.ui.TrescExcel_Nie, self))
        self.ui.TrescExcel_Tak.toggled.connect(lambda: CheckBox_Sprawdzenie(self.ui.TrescExcel_Tak, self))

        #Przycisk wywolywania okna z wyborem pliku wsadowego
        self.ui.Przycisk_PlikDystrybucyjnyEXCEL.clicked.connect(lambda: OknoWsadowe(self))

#FUNKCJE

#Funkcja otwierająca okno glowne
def Aplikacja():
    app = QtWidgets.QApplication(sys.argv)
    application = OknoGlowne()

    application.show()
    sys.exit(app.exec_())


#Informuje, dla zmiennych (ustalonych powyżej) jakie mają odbyc się kanały wysyłkis
def CheckBox_Sprawdzenie(Widget, Objekt):
    if Widget.text() == 'E-MAIL':
        CzyEMAIL =  Widget.isChecked()

    if Widget.text() == 'SMS':
        CzySMS = Widget.isChecked()

    if Widget.text() == 'Tak':              #Dotyczy źródła treści wiadomości - Czy Excel?
        ZrodloTresciWiadomosci = 'Excel'
        Objekt.ui.PoleWyboru.setTabEnabled(0, False)    #Wyłączane są pola do wpisywania treści wiadomości w programie
        Objekt.ui.PoleWyboru.setTabEnabled(1, False)    #Wyłączane są pola do wpisywania treści wiadomości w programie


    if Widget.text() == 'Nie':              #Dotyczy źródła treści wiadomości - Czy Excel?
        ZrodloTresciWiadomosci = 'Program'
        Objekt.ui.PoleWyboru.setTabEnabled(0, True)     #Włączane są pola do wpisywania treści wiadomości w programie
        Objekt.ui.PoleWyboru.setTabEnabled(1, True)     #Włączane są pola do wpisywania treści wiadomości w programie


#Licznik znaków SMS
def LicznikZnakowSMS (Text, ObjektGlowny):
    ObjektGlowny.ui.Licznik_LiczbaZnakow.setProperty("intValue", len(Text))

#Wskazanie pliku wsadowego
def OknoWsadowe (ObjektGłowny):
    print(DialogWskazywaniePlikow.OknoWyboryPliku())


if __name__ == "__main__":
    Aplikacja()

我正在寻求支持,

M

0 个答案:

没有答案